2012-05-02 37 views
14

Tôi có mô hình 'Bài viết' và một mô hình 'Xếp hạng' được lồng trong các bài viết.Đường ray thay đổi định tuyến gửi trong form_for

/bài viết/123/xếp hạng

Tôi muốn thay đổi định tuyến của f.submit trong xếp hạng/_form.html.erb bây giờ nó là như vậy, mà sau khi nhấn gửi, routs ứng dụng của tôi để

/xếp hạng/111

nhưng tôi muốn con đường nó để

/bài viết/123

Làm thế nào tôi có thể thay đổi rout ing trong một nút form_for f.submit. Tôi đã tìm thấy ở đây một cái gì đó như thế này:

<% form_for :thing, :url => 
url_for(:action => "update", :id => @thing) do |f| %> 

Nhưng điều này không làm việc cho đường ray của tôi 3.2. Cảm ơn sự giúp đỡ của bạn,

+0

Bạn quên thêm '=' sau '<%'. Thật không may là tôi không hiểu tại bộ điều khiển và hành động nào bạn muốn gửi biểu mẫu. –

Trả lời

19

: url - URL mà biểu mẫu được gửi đến. Nó có cùng các trường bạn chuyển đến url_for hoặc link_to. Đặc biệt, bạn có thể vượt qua ở đây một tuyến đường được đặt tên trực tiếp là tốt. Mặc định là hành động hiện tại.

<% form_for :thing, :url => {:action => "update", :id => @thing} do |f| %> 

bạn cũng có thể chuyển tên đường dẫn bằng cách sử dụng trình trợ giúp. vì vậy bạn cũng có thể làm điều gì đó như

:url => update_article_path(@article) 
+0

không có điều này không làm việc cho tôi >> form_for (@rating),: url => (: action => "show",: id => @article) do | f | >> lỗi mà tôi nhận được là >> lỗi cú pháp này, không mong muốn tASSOC, mong muốn keyword_end ... nd = – Lailo

+0

Tôi đã chỉnh sửa kiểm tra câu trả lời ngay bây giờ – Abid

3

Hãy thử form_for (:thing, url:{:controller=>'thing', :action=>'update'}, html:{method:'put'}).

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