簡體   English   中英

在Rails中手動創建表單字段,rails在編輯時如何自動填充字段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM