新模型插入覆盖其他人

时间:2013-12-23 23:45:18

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个rails应用程序,我有两个名为 Column Row 的模型:

柱:

has_many :rows

accepts_nested_attributes_for :rows, :reject_if => lambda { |b| b[:data].blank? }

行:

belongs_to :column

形式:

<%= form_for [@table, @row] do |f| %>

   <% @columns.each do |column| %>
       <%= f.label :data %><br>
       <%= f.text_area :data %>
   <% end %>

   <%= f.submit %>
<% end %>

和我在控制器中的创建动作:

@row = Row.new(row_params)

if @row.save
  redirect_to table_rows_path, notice: 'row was successfully created.' 
else
 render action: 'new'
end

和我的新动作:

@columns = Column.where(:table_id => @table.id)
@row = Row.new(id: @table.id)

所以我有两个问题。第一个是如果我说两列,那么新行页面上将有两个文本字段,我在第一个文本字段中输入“Test”,在第二个文本字段中输入“Another Test”。唯一得救的是第二个。第一个保存“另一个测试”而不是“测试”。

另外,如何获取行(属于列)以在每行中保存column_id?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您正在将新行的ID设置为@table.id。拿出来;你永远不需要创建一个新的.id。然后使用column_id: params[:column_id]将它们链接起来。