2012-07-10 24 views
5

Vì vậy, tôi có một trang có nhiều thông báo, mỗi thư có liên kết thay đổi (tinh chỉnh) RATING của thư đó. Khi người dùng nhấp vào liên kết này, tôi muốn có cuộc gọi AJAX cập nhật giá trị cột tương ứng trong cơ sở dữ liệu cho thông báo đó. Khi liên kết này được nhấp, không có gì xảy ra rõ ràng. Không nên làm mới hoặc tải lại trang.Sử dụng link_to remote: true để truyền tham số cho đường ray

Tôi đã cố gắng làm điều này bằng cách sử dụng link_to remote: true, nhưng tôi dường như không thể làm cho nó hoạt động. Tài liệu trực tuyến là khá không rõ ràng về câu hỏi này và với những thay đổi giữa Rails 2 và 3, một số điều như: với không còn được hỗ trợ.

Tôi đã sao chép những gì tôi có cho đến nay, nhưng tôi biết nó xa thậm chí đến gần một giải pháp. Về các tham số tôi cần được chuyển vào cơ sở dữ liệu, tôi cần profile_id, message_id và new_rating.

Cảm ơn trước!

show.html.haml

.status-bar 
    = link_to "", { action: :refine_result }, remote: true 

profile_controller.rb

... 

def refine_result 
    @refinement = ResultRefinement.new 
    @refinement.profile_id = params[:profile_id] 
    @refinement.message_id = params[:message_id] 

    @refinement.save 

    respond_to do |format| 
    format.html { render nothing: true } 
    format.js { render nothing: true } 
    end 
end 

result_refinement.rb

class ResultRefinement < ActiveRecord::Base 
    attr_accessible :profile_id, :message_id, :new_rating, :deleted 

    belongs_to :profile 
end 

Trả lời

6

Bạn cần phải thiết lập một lộ trình cho ProfileController#refine_result đầu tiên. Một cái gì đó như

match '/profile/refine_results' => 'profile#refine_results', :as => 'refine_results' 

Sau đó, bạn có thể sử dụng

.status-bar 
    = link_to "", refine_results_url(profile_id: 1, message_id: 100, new_rating: "awful"), remote: true 
+0

ảnh vui nhộn. Tôi đã bắt đầu chuyển các tham số và lưu chúng vào cơ sở dữ liệu. Vấn đề duy nhất mà tôi vẫn gặp là ngăn trang chuyển hướng hoặc thay đổi. –

+0

Có vẻ như một tệp js khác đã ghi đè ajax. Đó là lý do tại sao tôi tiếp tục theo liên kết thay vì có ajax đi qua. –

Các vấn đề liên quan