Подтвердить что ты не робот

Ruby - использование метода include в заявлении case

Я использую что-то вроде этого:

case referer
      when (referer.include? "some_string")
        redirect_link = edit_product_path
      when (referer.include? "some_other_string")
        redirect_link = other_product_path
end

К сожалению, это возвращает нуль, даже если строка some_string присутствует в переменной referer.

Вот что я пробовал в Ruby Console:

ruby-1.8.7-p334 :006 > jasdeep = "RAILS"
ruby-1.8.7-p334 :026 > case jasdeep
ruby-1.8.7-p334 :027?>   when (jasdeep.include? "AI")
ruby-1.8.7-p334 :028?>   puts "Hello"
ruby-1.8.7-p334 :029?> end
=> nil

Любые входы будут оценены.

4b9b3361

Ответ 1

Попробуйте это

jasdeep = "RAILS"
case jasdeep
when /IL/
  puts "Hello"
end

Ответ 2

jasdeep = "RAILS"

case
  when jasdeep.include?("AI")
    puts "Hello"
end

Ответ 3

case true
when referer.include? "some_string"
  redirect_link = edit_product_path
when referer.include? "some_other_string"
  redirect_link = other_product_path
end

Ответ 4

Это nil - это возвращаемое значение из инструкции puts, а не из .include?. Попробуйте выполнить следующие два оператора отдельно от консоли и наблюдать за возвращаемым значением:

jasdeep.include? "AI"

puts "hello"