2012-02-29 31 views
6

我不明白這裏發生了什麼。我想在我的(haml)視圖中輸入button_to。如果我這樣做:Rails button_to:如何指定控制器?

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

頁面生成具有:

<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> 

這是確定的,但我需要解決不同的控制器。但是,如果我試圖指定控制器:

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

我得到:

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

我預計action"/editor/new",我不知道爲什麼它不是,也不知道怎樣去正確指定我想要路由到的控制器。

我正在使用Rails 3.2.1。

回答

6

你不想要在自己的哈希值的選項,我認爲這是混淆瞭解釋。

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

應該做你想做的。

+0

嗯,確定是有效的。謝謝!我很困惑,因爲我認爲我正在按照顯示帶有三個參數的'button_to'的文檔:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to – 2012-02-29 15:21:05

+0

是啊,我不知道爲什麼link_to和button_to的文檔在這方面有所不同。請儘快答覆/接受我的答案!謝謝! – TheDelChop 2012-02-29 15:25:31

+0

「此時在元素輸入上不允許使用的屬性'控制器'是您創建的HTML5驗證錯誤,因爲您的輸入將類似於''而不是它簡單地包含'type =「submit」',也許值和類等等,依靠父窗體標籤提供的路徑。另一個答案會給出

' – xxjjnn 2014-07-30 10:25:59

5

嘗試

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

這個答案在HTML5中正確驗證=) – xxjjnn 2014-07-30 10:11:14