Когда у меня есть такой массив:
[5] pry(#<HomeController>)> params["search"]["sources"] => [""]
Как проверить, чтобы этот экземпляр был истинным?
Я попробовал следующее, но это не удалось:
[8] pry(#<HomeController>)> params[:search][:sources].empty?
=> false
[9] pry(#<HomeController>)> params[:search][:sources].nil?
=> false
[3] pry(#<HomeController>)> params["search"]["sources"].empty?
=> false
[4] pry(#<HomeController>)> params["search"]["sources"].eql? ""
=> false
[10] pry(#<HomeController>)> params[:search][:sources].blank?
=> false
[11] pry(#<HomeController>)> params[:search][:sources].any?
=> true
Когда значение атрибута моего params
пусто или равно ""
, я хочу сделать что-то определенное c.
Я бы хотел, чтобы он был условным для оператора if
, поэтому в приведенном выше случае он должен возвращать true.
Вот фактический полный params
Я проверяю:
params
=> <ActionController::Parameters {"search"=><ActionController::Parameters {"keywords"=>"", "types"=>[""], "categories"=>["", "", "", "", "", "", "", "Hockey", "", "", "", "", "", "", "", "", "", "", "", "", ""], "date_from"=>"", "date_to"=>"", "sources"=>[""], "genders"=>[""], "ages"=>[""]} permitted: false>, "controller"=>"home", "action"=>"index"} permitted: false>
По сути, я хочу проверить, не является ли какое-либо из значений в params[:search][:categories]
не пустым. В приведенном выше случае мы видим, что одно из значений равно строке Hockey
, поэтому в этом случае оно должно возвращать false.