【问题标题】:Rails 3: how to get the input from a check_boxRails 3:如何从复选框中获取输入
【发布时间】:2012-08-13 18:17:37
【问题描述】:

我对 ruby​​ on rails 很陌生...我的问题是从复选框中获取输出。如果 复选框是false,我想展示每场音乐会,但我总是得到else条件...... 怎么可能得到@concerts = Concert.find(:all, :order => "day")作为标准输出,如果check_box被选中,得到else条件?

#index.html.erb
check_box('dm', false, options = {}, checked_value = "1", unchecked_value = "0")


# controller.rb
def index
  if params[:dm] == '0'
    @concerts = Concert.find(:all, :order => "day")
  else
    @concerts = Concert.find(:all, :order => "day", :conditions => {:bool => false})
end

开发日志

在 2012-08-14 13:21:39 +0200 开始为 127.0.0.1 获取“/” ConcertsController#index 处理为 HTML [1m[36mConcert Load (0.0ms)[0m [1mSELECT concerts.* FROM concerts WHERE concerts.bool = 0 ORDER BY day[0m [1m[35mConcert Load (15.6ms)[0m SELECT concerts.* FROM concerts ORDER BY lineup [1m[36mConcert Load (0.0ms)[0m [1mSELECT DISTINCT day FROM concerts ORDER BY day[0m [1m[35mConcert Load (0.0ms)[0m SELECT DISTINCT club_id FROM concerts ... 在布局/应用程序中渲染了 Concerts/index.html.erb (78.0ms) 在 94 毫秒内完成 200 次 OK(查看次数:78.0 毫秒 | ActiveRecord:15.6 毫秒)

【问题讨论】:

    标签: ruby-on-rails-3 checkbox


    【解决方案1】:

    试试这个

    def index
      if params[:dm] == '0'
        @concerts = Concert.find(:all, :order => "day")
      else
        @concerts = Concert.find(:all, :order => "day", :conditions => {:bool => false})
    end
    

    控制器接收到的复选框值是字符串形式的 0 或 1。另外,应该是params[:dm]

    【讨论】:

    • 使用来自development.log 的日志消息更新您的问题以获取特定请求。
    • 刚刚添加了 development.log。这是加载应用程序时的输出。当我选中复选框时,日志文件中不会添加任何内容...
    • 我希望您在提交表单时添加与 POST 请求对应的日志。
    • mhhh,在日志文件中从来没有得到任何关于 POST 的信息……也许这就是问题所在?
    猜你喜欢
    • 2011-10-04
    • 2023-03-24
    • 2013-04-23
    • 2013-09-12
    • 2015-11-13
    • 2015-08-15
    • 2014-01-06
    • 1970-01-01
    • 2019-07-16
    相关资源
    最近更新 更多