如何在rails表单标签下拉列表中获取一些固定的静态值?

用户3576036

我正在尝试实现过滤器。我有一个带列的模型,status我已经为该列定义了枚举状态以使其可读。而这些状态是固定的。

模型

class Production < ApplicationRecord    
  enum status:{
    Preproduction:1,
    Postproduction: 2,
    Completed:3
  } 
end

我正在尝试根据用户给出的状态过滤表格。仅当用户输入状态的完整名称(如 )时才会过滤结果preproduction控制器如下:

控制器

    def index
        if params[:filter]
          @productions = Production.where('productions.status like ?', "%#{Production.statuses[params[:filter].capitalize]}%")
        else
          @productions = Production.all
        end    
   end

如您所见,我正在使用 params 进行查询。

我当前的表单标签看起来像这样

指数

<%= form_tag productions_path, :method => 'get', :id=> "contacts_search" do %>
  <p>
    <%= text_field_tag :filter, params[:filter] %>
    <%= submit_tag "Filter", :name => nil %>
  </p>
  <div id="cresults_div"><%= render 'cresults'%> </div>
<% end %>

我有一些固定状态如下:

Production.statuses => {"Preproduction"=>1, "Postproduction"=>2, "Completed"=>3}

由于我在 params 的帮助下查询控制器,因此我无法f.select像某些答案中建议的那样直接使用如何Preproduction Postproduction Completed在此文本字段的广告下拉列表中获取这些关键字

安全的
<%= select_tag :'filter', options_for_select(Production.statuses, params[:filter]), include_blank: '--Select One Option--' %>

在控制器中: -

def index
  if params[:filter]
    @productions = Production.where(status: params[:filter])
  else
    @productions = Production.all
  end    
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在JSON中获取一些值?

如何在摘录中删除一些Liquid标签?

如何在roundSlider中添加一些文本标签

您如何在userInput的中间获取一些值

如何从Rails字符串中获取一些特定值?

如何在 dict 列表中搜索以获取一些密钥?

如何在表单标签中包含一个依赖下拉列表?

如何在SQL Server的列中获取一些值

我如何在bash脚本的字符串中获取一些值

如何在Java中的固定位置将一些索引移到数组列表元素的右边

如何从多维数组中获取一些值

如何在String Android中获取一些字符

如何在json文件中获取一些数据?

如何在angular2的表单元素中获取下拉列表选择的值

如何在 javascript 对象中嵌套一些值?

如何在rails的时区下拉列表中添加标签

仅使用JSON数据集中数组中的一些值填充选择下拉列表

如何在更新表单的下拉列表中设置选定的值

当值为空和一些数字时,如何在标签中显示字符串值

如何在标签下获取文本

在Jqgrid添加/编辑表单中显示一些标签

如何在下拉选项中获取“输入”标签值?

一些带有隐藏值的数据列表标签

如何在C#中使用Lambda表达式从列表中获取一些属性

根据表中的一些标签值获取随机行

如何在 Python 中创建列表并仅初始化其中的一些值(与 C++ 相比)

如何在下拉框中添加一些图像?

如何在SumoSelect下拉列表中获取选定的值?

如何在下拉列表中获取未选择的值