简体   繁体   中英

ruby - using include method in a case statement

I'm using something like this:

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

Unfortunately, this returns nil even if the string some_string is present in the variable referer .

Here's what i tried in 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

Any inputs will be appreciated.

Try this

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

case
  when jasdeep.include?("AI")
    puts "Hello"
end
case true
when referer.include? "some_string"
  redirect_link = edit_product_path
when referer.include? "some_other_string"
  redirect_link = other_product_path
end

That nil is the returned value from the puts statement, not from .include?. Try to run the following two statements separately from the console and observe the returned value:

jasdeep.include? "AI"

puts "hello"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM