2010-06-04 81 views
0

我想在我的網頁上隨處創建一個登錄場,所以我加:局部模板submit_tag

在application.html.erb:

<%= render :partial => 'sessions/new' %> 

.. ./views/sessions/_new.html.erb

<%= form_tag do %> 
    <div> 
    <label for="name">Email :</label> 
    <%= text_field_tag :name, params[:name] %> 
    <label for="password">Mot de passe :</label> 
    <%= password_field_tag :password, params[:password] %> 
    </div> 

    <div> 
    <%= submit_tag "Connection" %> 
    </div> 
</fieldset> 

但它的工作只有當我在一個會話控制器,當我測試它在我的瀏覽器, 我認爲:

<%= submit_tag "Connection" %> 

指他目前的控制器(會話),這就是爲什麼它在廣告/指數不連續工作爲例,但在會議/索引完成其工作。

我該怎麼辦? 我必須在submit_tag中指定控制器嗎?

感謝很多:)

回答

0

你需要告訴表單標籤表單必須提交的URL。也許默認情況下,它提交給當前的行動或東西?不管它是什麼,你都不應該依賴默認值。

閱讀API http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002551&name=form_tag

噢,順便說一句提交標籤只是一個按鈕,它沒有什麼關係,爲什麼形式或不工作。新手關於表單的問題存在很多混淆 - 很多人並不瞭解表單如何工作。在使用任何rails助手之前,我強烈建議您使用純html製作表單。這樣你就會明白實際發生了什麼,而形式助手就是這樣的,即「幫助你更迅速地做某事的事情」,而不是像這些神奇的事情,當他們不做什麼你的期望。

+0

謝謝:)我也愛你 – akam 2010-06-04 14:50:28

0

你需要指定控制器,但對form_tag不是submit_tag

例如<%= form_tag :controller => 'sessions', :action => 'new' %>

+0

謝謝你! 我愛你:) – akam 2010-06-04 14:49:59