Dud*_*udo 2 ruby lowercase ruby-on-rails-3 ruby-on-rails-4
我发现搜索我特别不想要字符大小的事情的最好方法是:
@tag = Rails.env.development? ? Category.where("LOWER(name) LIKE ?", "%#{params[:find]}%")[0] : Category.where("LOWER(name) ILIKE ?", "%#{params[:find]}%")[0]
Run Code Online (Sandbox Code Playgroud)
我必须拥有.env查找器,因为我使用Heroku,而且我不关心在我的开发机器上安装PostgreSQL.不过,是不是有类似的东西:
@tag = Category.find_by_name(params[:find], case_sensitive: false)
Run Code Online (Sandbox Code Playgroud)
我们可以将选项传递给find_byRails中的帮助程序吗?这将是一个很好的.
Dam*_*ien 14
我们可以将选项传递给Rails中的find_by助手吗?这将是一个很好的...
不,没有.(参见API)
是的,这将是一个很好的.
你可能不接受这个答案,因为你的问题不是一个真正的问题.
这可能是你被投票的原因.
也许你也可以小写params[:find](params[:find].downcase)并关心你的开发机器上的PG设置.
Category.where("LOWER(name) LIKE ?", "%#{params[:find].downcase}%").first
Run Code Online (Sandbox Code Playgroud)
在此期间,您可以在模型中提取查询:
category.rb
def self.search_by_name(name)
if Rails.env.development?
where("LOWER(name) LIKE ?", "%#{name.downcase}%").take
else
where("LOWER(name) ILIKE ?", "%#{name}%").take
end
end
Run Code Online (Sandbox Code Playgroud)
调节器
@tag = Category.search_by_name(params[:find])
Run Code Online (Sandbox Code Playgroud)