[英]Manually Creating Form Fields in Rails, How does rails auto populate fields when editing?
我手動在Rails中創建一個表單,即:
<input type="number" name="funds_application[product_revenues_attributes][1][amount]">
這在提交數據時工作正常,但是當我編輯記錄時,字段不會自動填充。 有誰知道rails如何做到這一點? 我是否需要使用<%= text_field_tag %>
來使其中的一部分正常工作。
這是我使用Simple_form的較大表單的一小部分,其余部分按預期工作。 我發現復雜的形式有點融入軌道,它想要什么?
你需要手工做嗎? 你還能使用表格助手嗎?
無論如何,Rails的方式是你總是給表單一個你正在使用的模型的實例,並在其屬性上調用getter。 對於新的實例,它們將是空白的。 對於已保存的實例,它們將具有值。 例如,如果您的User
模型具有login
name
和屬性,則可以在控制器中執行@user = User.new
,並在表單中執行(使用幫助程序標記):
<%= text_field_tag "login", @user.login %>
<%= text_field_tag "name", @user.name %>
如果您有一個實際用戶( @user = User.first
),您仍然可以在該視圖中使用它。
所以不,您不必使用表單標記,因為基本原則始終是給出您正在使用的模型的實例,並決定在屬性為nil / blank時使用的默認值。
因此,如果您始終有一個可以使用的對象,但仍希望手動執行,則可以鍵入:
<input type="number" name="funds_application[product_revenues_attributes][1][amount]" value=@my_object.amount>
或者無論這個領域到底是什么。 這樣,它獲得了一些默認值,但如果該對象已經具有該屬性的某些內容,則會輸出該屬性。
如果您自己構建表單,則可以自己從傳入的對象填充字段,其中的代碼如下:
<input type="number" name="funds_application[product_revenues_attributes][1][amount]" value="<%= @model.value %>">
但是,最棘手的方法是使用form_for
構造。 這個指南非常好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.