Rails添加pass变量以从循环创建新记录

时间:2018-10-23 08:39:50

标签: ruby-on-rails

我有票和桌子模型。票证属于表。

我想显示一个表索引,每个索引都应该有一个指向分配了相应表的新票证的按钮。

票务控制器:

  def new_from_table
    @ticket = Ticket.new(table_id: table_id)
  end

在我看来:

<% @tables.each do |table| %>
  <tr>
    <td><%= table.name %></td>
    <td><%= link_to 'Add', new_from_table_path(:table_id => table.id), class: "btn btn-sm btn-success" %></td>
    </td>
  </tr>

和路线:

  get 'new_from_table', to: 'tickets#new_from_table', as: :new_from_table

但是我不知道如何在循环中将table.id传递给ticket.table_id。

以上解决方案返回:

  

Ticket的未定义局部变量或方法'table_id'...

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

  

Ticket的未定义局部变量或方法'table_id'...

这意味着,当在controller#action中通过路径new_from_table_path(:table_id => table.id)传递table_id时,该参数table_id将被动态地视为params[:table_id]

  def new_from_table
    @ticket = Ticket.new(table_id: params[:table_id])
  end