加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何通过使用带有options_from_collection_for

发布时间:2020-12-17 03:04:09 所属栏目:百科 来源:网络整理
导读:我已经构建了一个这样的表单搜索: %= form_tag({ controller: 'questions',action: 'search_topic' },method: 'get') do % %= select_tag 'search_topic',options_from_collection_for_select(current_user.get_topics,:id,:name) % %= submit_tag "Search"
我已经构建了一个这样的表单搜索:

<%= form_tag({ controller: 'questions',action: 'search_topic' },method: 'get') do %>
  <%= select_tag 'search_topic',options_from_collection_for_select(current_user.get_topics,:id,:name) %>
  <%= submit_tag "Search",name: nil,class: 'btn' %>
<% end %>

我想搜索从选择框中选择的主题的所有问题,我使用太阳黑子来帮助搜索,所以现在我如何将选择框中的值选择传递给控制器??进行搜索,我使用下面的代码来传递参数[:search] :

<%= select_tag 'search_topic',:name),params[:search] %>

但它有错误:

undefined method `[]' for nil:NilClass

这是我的控制器:

def search_topic
  @search = Question.search do
    with(:topic_id,params[:search])
    paginate page: 1,per_page: 10
  end

  @questions = @search.results
  render 'index'
end

那么,如何将从表单上的选择框中选择的值传递给控制器??进行搜索?

解决方法

嘿,没有必要通过params [:搜索]. 当单击提交按钮时,Rails会自动生成用于选择的参数. 如果您想将名称参数设置为“搜索”,则将选择“搜索主题”的名称更改为“搜索”. ?如果你想检查params的值,它将如何在params中接收,尝试调试器并检查由此表单生成的params的值. 此外,还有一个快捷方式,尝试在按下提交后要调用的操作中输入错误,并在浏览器页面上读取params.您也可以在下一页用闪光灯打印

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读