现在,我已经拥有它,以便当用户从collection_select
中选择一个选项时,会根据他们选择的event_id
填充div。根据{{1}},会显示多个Event
,每个EventOption
都有自己唯一的ID。 (我EventOption
belongs_to
为Event
has_many
,其中Event
个<div class="center" >
<h2>Available Options for "<%= @event.name %>":</h2>
<% @event.event_options.each do |e| %>
<p><strong>Name:</strong> <%= e.name %> </p>
<p><strong>Description:</strong> <%= e.description %></p>
<p><strong>Price:</strong> <%= e.price %></p>
</div>
<div class = "center row">
<div class = "col-xs-6">
<%= link_to "Check Available Dates", root_path, :class => "button", :id => "available-dates-button" %>
</div>
<div class = "col-xs-6">
<%= link_to "Book This Event Now!", book_now_path(:event => @event.id), :id => "book-now-button", :class => "button" %>
</div>
<hr>
<% end %>
</div>
。
这是我在选择event_id
时通过JS / Ajax填充的内容:
Book This Event Now!
我的问题是,当我们点击:id
时我可以通过:event_option
,但这不是我需要的。我需要传递.each
的具体book_now_path
,而且我不知道如何从迭代的widget.js
中获取它。我来自它。
如何确保我的componentHandler.upgradeDom();
后面的按钮的每次迭代都有一个我可以用来完成预订的唯一ID?
答案 0 :(得分:3)
只需将event_option.id
添加到book_now_path
帮助器即可。
book_now_path(:event => @event.id, :event_option_id => e.id)
然后在控制器动作中,它将在params:
@event_option_id = params[:event_option_id]
您可以将任何其他参数添加到Rails路由助手中,只需将其名称和值作为键和值添加到助手方法的选项中即可。