【发布时间】:2015-07-21 00:50:59
【问题描述】:
我希望网站访问者能够在可以通过下拉表单输入的范围内查看附近的节目。我有一个使用 Geocoder gem 显示附近节目的视图:
<h3> Shows near <%= request.location.city %> </h3>
<%= form_for @nearby_shows.first do |f| %>
<p> Radius (in miles): <%= f.select(:radii, [10,20,30,40,50], {},
:style => "width:50px", :selected => f.object.radii, :onchange =>
"location.href = '#{shows_path}'") %> </p>
<% end %>
<ul class="users">
<% @nearby_shows.each do |nearby_show| %>
<li>
<%= link_to nearby_show.show_name, nearby_show %>
</li>
<% end %>
</ul>
目前选择不会影响任何内容,并且当页面刷新时不会在表单中记住选择。
模型,show.rb 包含:
attr_accessor :radii
节目控制器包含:
def index
@shows = Show.all
@radii = 50
@nearby_venues = Venue.near("Boulder, CO",@radii,:select =>
"id").to_a
@nearby_shows = Show.where(show_venue: @nearby_venues)
end
在生产中,我将使用 request.location.city,但在开发中,我只是使用“Boulder, CO”作为示例。
如何使用输入选择表单设置@radii?我担心 form_for 不允许我更改实体列表的变量@nearby_shows。
【问题讨论】:
-
我不确定我是否真的理解...你想要 AJAX 解决方案吗?
-
是的,那太好了。
标签: ruby-on-rails