【发布时间】:2014-11-12 15:33:22
【问题描述】:
我在 Rails 3 中使用 Ransack。
我的看法:
<%= search_form_for @search do |f| %>
<%= f.text_field :first_name_or_last_name_or_company_cont, :style => 'width:150px;padding-top:6px;' %><p class="button">
<%= f.submit "Search by name or company" %></p>
<% end %>
我的架构:
create_table "users", :force => true do |t|
t.string "first_name",
t.string "last_name"
在我拥有的用户模型上:
def full_name
"#{self.first_name} #{self.last_name}"
end
在控制台上工作。
如果我有 first_name = "Foo", last_name = "Bar" 的用户,当我使用其中一个进行搜索时,我会得到预期的结果。
当我使用 full_name = "Foo Bar" 搜索时,我没有得到任何结果。
我尝试将 Ransack 的 text_field 更改为:
<%= f.text_field :first_name_or_last_name_or_company_or_full_name_cont
我收到first_name_or_last_name_or_company_or_full_name_cont is undefined
有没有一种快速的方法来解决这个问题,而无需在我的用户表上为 full_name 添加另一列?
还有:
7: def index
8: search_params = params[:q]
=> 9: binding.pry
[1] pry(#<UsersController>)> search_params
=> {"first_name_or_last_name_or_company_cont"=>"Foo Bar"}
我想我可以在这里拆分键值以仅搜索名字。
【问题讨论】:
标签: ruby-on-rails ruby ransack