【问题标题】:Radio button condition ruby on rails轨道上的单选按钮条件红宝石
【发布时间】:2012-05-30 13:49:41
【问题描述】:

我在使用此代码时遇到了一些问题。我正在尝试为我的数据库创建“高级”搜索。请求两种类型的数据(电影和位置)。该位置完美无瑕,并显示了一个位置附近的所有电影院。但是是否可以通过输入电影的特定名称来做到这一点?

Location Controller:
if params[:allcinemas].checked?
  if params[:search].present?
    @locations = Location.near(params[:search], 10, :order => :distance)
    @title = "Search Results:"
  else
    @locations = Location.joins(:cinema).order("cinemas.name").all
    @title = "Locations of Cinemas"   
  end
elsif params[:allmovies].checked?
  if params[:search].present?
    @films = Film.near(params[:search], :order => :title)
  else
    @films = Film.find(:all, :order => "title") 
  end

这是位置的 Show.Html.erb

show.html.erb
<p>
 <%= text_field_tag :search, params[:search] %>
 <%= submit_tag "Search Nearby Cinemas", :name => nil %>
 <br><%= radio_button_tag 'allcinemas', 'cinemas', true %> Cinemas
 <br><%= radio_button_tag 'allmovies', 'movies' %> Movies
</p>

【问题讨论】:

  • 没完全明白你的问题,你能更具体地说明你想做什么吗?
  • 当然,我有一个搜索字段,仅根据谷歌搜索最近的电影院(邮政编码,名胜古迹)。我想要实现的是在提交按钮下再提供 2 个选项,允许用户选择(电影或电影院)。简单来说,如果选中了电影单选按钮并且输入了搜索,则根据标题查找电影。否则,找到所有电影。 else if,如果用户检查过电影院,则查找最近的电影院,否则查找所有电影院。结束

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rubygems


【解决方案1】:

您的 radio_button_tags 应该具有相同的名称,例如:

&lt;%= radio_button_tag 'radio_input', 'cinemas', true %&gt; Cinemas
&lt;%= radio_button_tag 'radio_input', 'movies' %&gt; Movies

现在,在您的控制器中,radio_input.checked 了吗?将始终返回 true,因为您默认选择一个选中。所以,而不是这个检查:if params[:allcinemas].checked?

检查 params[:radio_input] 返回的值:
if params[:radio_button] == 'cinemas'
#your logic to handle cinemas
else
#your logic for movies

这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多