我通讀了hidden_fields
的techy定義,但我不確定它的真實含義。我的理解是,它允許您傳入特定參數的屬性。例如,如果您具有豐富的聯接模型,則可以使用hidden_field
將user_id分配給用戶的聯接模型屬性。那是對的嗎?rails - hidden_field和hidden_field_tag究竟做了什麼?
如果是這樣,在表單或控制器中執行它會更好嗎?
我通讀了hidden_fields
的techy定義,但我不確定它的真實含義。我的理解是,它允許您傳入特定參數的屬性。例如,如果您具有豐富的聯接模型,則可以使用hidden_field
將user_id分配給用戶的聯接模型屬性。那是對的嗎?rails - hidden_field和hidden_field_tag究竟做了什麼?
如果是這樣,在表單或控制器中執行它會更好嗎?
這兩種方法都是幫助程序來創建類型爲「hidden」的HTML輸入標記,而且這些方法用於向請求(通常是表單POST)添加參數。真的,參數可以是你想要發送的任何信息。但要小心,因爲隱藏的區域很容易被篡改。
這裏是一個將在一個隱藏字段
# Form
<%= form_tag foo_path do %>
<%= hidden_field_tag "user_id", @user.id %>
....
<%= submit_tag "Click Me" %>
<% end %>
# Controller
def foo
# params[:user_id] is set with the value from the hidden field
# Do useful stuff with the POST data
end
雖然你可以通過發送東西的用戶ID,如user_ID的是這樣的一個例子,我發現需要實屬罕見。如果在給定情況下總是需要user_id,則可以考慮使用嵌套路由http://guides.rubyonrails.org/routing.html#nested-resources。
由於@wizard OGZ的。我想'hidden_field'會不是安全的,我試圖通過'create'方法通過控制器保存它,但遇到了麻煩,當你通過豐富的連接模型進行關聯時,他們是否應該自動更新像user_id這樣的東西?如果是這樣,我很明顯我的關聯做了一些錯誤。謝謝。我還在這裏發佈了另一個問題:[question](http://stackoverflow.com/questions/7740873/nested-attributes-not-saving-the-user-id-in-join-表)如果你想看看。謝謝。 – noob
啊,我認爲這個問題在另一個問題中得到了更好的解釋,我會在那裏發帖 –
它會生成一個隱藏式輸入字段...
<input type="hidden" />
這是存儲要與形式,而無需有可見的領域提交的信息的一種方式。
hidden_field_tag 'tags_list'
生成...
<input id="tags_list" name="tags_list" type="hidden" />
hidden_field_tag
是指不使用模型中使用而hidden_field
是指在結合使用具有form_for
呼叫和模型。
hidden_field(:signup, :pass_confirm)
生成...
<input type="hidden" id="signup_pass_confirm" name="signup[pass_confirm]" value="#{@signup.pass_confirm}" />
'hidden_field'簡單地創建'「'。 – Zabba