sup*_*ary 11 ruby ruby-on-rails
在我的一个模型中,我有这样的代码:
def lendable_category=(i)
set_category(i)
end
def free_category=(i)
set_category(i)
end
def skill_category=(i)
set_category(i)
end
Run Code Online (Sandbox Code Playgroud)
这些方法是我添加的虚拟参数,因此我可以使用params哈希保存对象而不会强制控制器中的哈希值.
三次说同样的事并不好.有没有更好的方法来创建这样的相同方法?
sai*_*lor 16
%w(lendable free skill).each do |name|
define_method "#{name}_category" do |i|
set_category(i)
end
end
Run Code Online (Sandbox Code Playgroud)
And*_*nes 15
或者,由于您的方法除了调用之外没有做任何其他操作set_category,您可以通过对方法进行别名来保存几行:
%w(lendable free skill).each do |name|
alias_method "#{name}_category=", :set_category
end
Run Code Online (Sandbox Code Playgroud)