【发布时间】:2014-08-10 01:18:09
【问题描述】:
我正在尝试为我的索引表编写一行,以过滤我的对象关于特定列的特定值。我到现在为止是这样的:
pimps_controller.rb:
def index
@pimps = Pimp.search(params[:search])
end
pimp.rb:
def self.search( search)
if search
where('title LIKE ?', "%#{search}%")
else
scoped
end
end
部分视图:
<%= text_field_tag :search, params[:search] %>
该过滤器仅在对象标题之后进行,因此我尝试对其进行更改以使其适用于可以过滤不同属性的不同搜索字段。如果有人触发搜索功能以确保它触发正确的属性,我想传递第二个参数值。这就是我尝试过的:
pimps_controller.rb
@pimps = Pimp.search(params[:search_column],params[:search])
pimp.rb:
def self.search(search_column, search)
if search
col = "%#{search_column}"
s = "%#{search}%"
where(col 'LIKE ?', s)
else
scoped
end
end
观点:
<%= text_field_tag :search, params[:search], params[:search_column => title] %>
但它不起作用。我猜想在一个搜索字段中传递这两个参数时收到一条错误消息。你会怎么做?
【问题讨论】:
-
您遇到了什么错误?一个搜索字段中的两个参数是什么意思?
-
你想在这里做什么?看起来不对。
<%= text_field_tag :search, params[:search], params[:search_column => title] %>
标签: ruby-on-rails search params