2012-02-29 19 views
6

Tôi không hiểu điều gì đang xảy ra ở đây. Tôi muốn đặt button_to trong chế độ xem (haml) của tôi. Nếu tôi làm điều này:Nút Rails_to: cách chỉ định bộ điều khiển?

=button_to("New", {:action => "new"}, {}) 

trang được tạo ra có:

<form action="/cached_input_files/new" class="button_to" method="post"> 
    <div> 
    <input type="submit" value="New" /> 
    <input name="authenticity_token" type="hidden" value="..blah.." /> 
    </div> 
</form> 

đó là OK, nhưng tôi cần phải giải quyết một bộ điều khiển khác nhau. Nhưng nếu tôi cố gắng để xác định bộ điều khiển:

=button_to("New", {:action => "new", :controller => "editor"}, {}) 

tôi nhận được:

<form action="/assets?action=new&controller=editor" class="button_to" method="post"> 
    <div> 
    <input type="submit" value="New" /> 
    ... 

tôi mong đợi các action"/editor/new", và tôi không có ý tưởng tại sao nó không phải là, và cũng không làm thế nào để xác định một cách chính xác bộ điều khiển tôi muốn định tuyến đến.

Tôi đang sử dụng Rails 3.2.1.

Trả lời

6

Bạn không muốn để bao gồm các tùy chọn trong băm riêng của họ, tôi nghĩ rằng đây là khó hiểu người phiên dịch.

=button_to("New", :action => "new", :controller => "editor") 

nên làm những gì bạn muốn.

+0

Hmm, OK hoạt động. Cảm ơn! Tôi đang bối rối mặc dù, bởi vì tôi nghĩ rằng tôi đã làm theo các tài liệu đó cho thấy 'button_to' với ba params: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to –

+0

Yeah , Tôi không biết tại sao tài liệu cho link_to và button_to lại khác nhau về mặt này. Chỉ cần upvote/chấp nhận câu trả lời của tôi, xin vui lòng! Cảm ơn! – TheDelChop

+0

"Bộ điều khiển thuộc tính" không được cho phép trên đầu vào phần tử tại thời điểm này "là lỗi xác thực HTML5 này sẽ tạo, vì đầu vào của bạn sẽ giống như' 'chứ không phải nó đơn giản chứa 'type =" submit "' và có lẽ Value and Class etc, dựa vào đường dẫn được cung cấp bởi thẻ form cha. Câu trả lời khác sẽ cung cấp cho '

' – xxjjnn

5

Hãy thử

=button_to("New", new_editor_path, :method => :get) 
+0

Câu trả lời này xác thực chính xác trong HTML5 =) – xxjjnn

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