方法的多个参数

时间:2011-07-05 18:01:48

标签: ruby-on-rails

我在application_helper

中有这个方法
def is_controller?(*args)
 "active" if args.include?(params[:controller])
end

这很有效。

%= is_controller?("x") %>

这不起作用。

%= is_controller?("x", "y", "z", "t") %>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在控制台中,它的行为与您期望的一样

irb(main):020:0> def is_controller?(*args)
irb(main):021:1>    "active" if args.include?("x")
irb(main):022:1>   end
=> nil
irb(main):023:0> is_controller?("x")
=> "active"
irb(main):024:0> is_controller?("y")
=> nil
irb(main):025:0> is_controller?("x","y")
=> "active"

所以问题似乎是你的params [:controller]值不是你认为应该的......