2010-08-17 22 views

Trả lời

15

Cách duy nhất tôi tìm thấy để làm điều đó là để bọc các tham số url trong phương thức url_for.

form_tag url_for(:action => :create, :id => @artist.id), :remote => true do 

Tuy nhiên, nếu bạn cần chuyển thông số method, bạn có thể cần phải quấn thông số đó và điều khiển từ xa trong dấu ngoặc đơn.

0

Tôi tin rằng bạn cần phải sử dụng form_remote_tag thay vì: phương pháp http

form_remote_tag(:url => { :controller => :magic, :action => :search }) do 

Giá trị mặc định là đường bưu điện.

Nếu bạn muốn truyền tham số thêm vào một form_tag bạn cần phải làm cho họ thành một băm riêng biệt từ các thông số url, như thế này:

form_tag { :controller => :magic, :action => :search }, { :method => post, :remote => true } do 
+0

Câu trả lời đúng là tách hai tham số băm, nhưng trong Rails 3 hoạt động với 'form_tag' và tham số': remote => true'. Rails 3 nhằm mục đích không phô trương với javascript được tạo ra, và logic để gửi nó như là một yêu cầu ajax nằm ở phía khách hàng, với trình điều khiển Javascript của sự lựa chọn của bạn. Xem http://railscasts.com/episodes/205-unobtrusive-javascript – Chubas

9

Dưới đây là những gì bạn cần:

form_tag({ :controller => :magic, :action => :search, :method => post }, { :remote => true }) do .... 

loại của nó của một thiết kế xấu, nhưng Rails form_tag phương pháp đòi hỏi HAI băm - các tùy chọn url_for băm, và các tùy chọn thường xuyên băm. Điều này đã tạo ra nhiều sự nhầm lẫn cho nhiều lập trình viên Rails. Nếu bạn không thêm ranh giới băm delineating, tất cả các tùy chọn được chuyển tới url_for(), hủy hoại :remote => true.

Điều này sẽ thêm data-remote="true" vào biểu mẫu của bạn (được sử dụng với javascript không phô trương, như những người khác đã đề cập). Từ đó bạn cần tạo AJAX thích hợp để ràng buộc để thực hiện yêu cầu.

Mặc dù thực sự bạn nên sử dụng tuyến đường được đặt tên như magic_search_path thay vì thông số bộ điều khiển/hành động.

+1

FYI, bạn có thể thấy hai tùy chọn băm trong nguyên mẫu phương thức form_tag: http://railsapi.com/doc/rails-v3.0.7/classes/ ActionView/Helpers/FormTagHelper.html # M006397. – adamlamar

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