簡體   English   中英

Ruby on Rails:相同格式的多個輸入字段-更改ID /值

[英]Ruby on Rails: Multiple Input Fields in The Same Form - Change ID/Value

有一個頁面,其中有相同的東西的多個輸入字段,帖子。 現在,當用戶輸入一個問題,例如3個字段時,保存到數據庫中的唯一字段是最后一個。 然而,它應該保存所有三個並給它們每個自己的post_id。 也; 如果用戶未在其他字段中輸入任何內容,則也不應將其保存在數據庫中。

new_step_4_html.erb

<%= form_for(@post) do |f| %>
  <%= f.text_field :content %>
  <%= f.text_field :content %>
  <%= f.text_field :content %>
<% end %>

projects_controller.rb

def new_step_4
  @post = Post.new
end

現在,它所做的只是提交一個:content字段,顯然是因為它們都共享相同的ID /值。 不幸的是,Railscasts#197適用於嵌套表單,因此他所做的所有JavaScript和輔助程序都適用於嵌套。 我認為這很簡單。 IRC的人提到我可以在視圖文件中執行某種“ 3.times”代碼?

首先,您可能必須編輯帖子的模型。

post.rb

has_many :contents, :dependent => :destroy
accepts_nested_attributes_for :contents

您將需要另一個模型來存儲內容字段。 所以首先生成一個模型

rails g model content post_id:integer body:text

該模型

content.rb

belongs_to  :post

現在,讓Rails創建它們,而不是做幾次<%= f.text_field:content%>,因為現在您基本上讓它們彼此覆蓋了。

3.times do
  content = @post.content.build
end

表單視圖將如下所示:

<%= form_for @post do |f| %>
  <%= f.fields_for :contents do |builder| %>
    <%= builder.label :body, "Question" %><br />
    <%= builder.text_area :body, :rows => 3 %><br /> 
  <%= end %>     
  <p><%= f.submit "Submit" %></p>
<% end %>

我沒有測試此代碼,但是這個想法應該是正確的。 如果您需要更多信息,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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