ruby-on-rails - для - ruby on rails вакансии



Как проверить, является ли параметр true или false? (3)

Это действительно ломает голову, но, может быть, я пытаюсь усердно.

Я передаю параметр через URL (example.com?debug=true)

Поэтому я в основном хочу сказать:

if params[:debug] == true
 do xyz
else
 do abc
end

Но по какой-то причине, если утверждение просто не работает, похоже, похоже.

Есть ли лучший способ сделать это, если оператор / else, основанный на параметре true или false?

Параметр debug будет либо иметь значение true, ни значение, либо значение false (по отношению к URL-адресу).

https://src-bin.com


Answer #1

Но по какой-то причине, если утверждение просто не работает, похоже, похоже.

Я почти гарантирую, что он делает именно то, что должен. Когда что-то не имеет смысла, одно из наших предположений неверно.

Является ли значение фактически логическим или это строка (или что-то еще?). Если значение представляет собой строку, то, конечно, сравнение с логическим значением true завершится ошибкой. Попробуйте сравнить с «true» и посмотрите, работает ли это.


Answer #2

params входят как строки, поэтому вам нужно сравнивать с "true" , а не с true .


Answer #3

Поскольку Rails / ActiveRecord 4.2.0 это

if ActiveRecord::Type::Boolean.new.type_cast_from_user params[:debug]
  do xyz
else
  do abc
end

В Rails 5 это:

if ActiveModel::Type::Boolean.new.cast params[:debug]
  do xyz
else
  do abc
end




ruby