响应一种方法但不响应同一范围内的其他方法

时间:2015-03-12 13:14:28

标签: ruby ruby-on-rails-3

使用以下代码

class User < ActiveRecord::Base

  # ...
  # code filtered from here
  # ...

  # both methods below are public methods

  def humanized_roles
    roles.collect {|e| e.name.humanize }.join(', ')
  end

  def role=( arg = nil)
    self.roles = []
    self.add_role arg.to_sym
  end
end

这种情况正在发生

User.new.respond_to? :humanized_roles
# => false
User.new.respond_to? "role=".to_sym
# => true

rvm,ruby,rails版本

  • rvm 1.26.3
  • ruby​​ 1.9.3p448(2013-06-27修订版41675)[x86_64-linux]
  • Rails 3.2.14

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

为了产品发布,我绕过了这个问题并使用了一个帮助方法来接受用户对象作为参数,而不是user.humanize_roles

谢谢大家的宝贵时间和帮助。响应。