Rails 4:Merit Gem:干掉PointRules代码?

时间:2014-06-27 16:08:03

标签: ruby-on-rails-4 merit-gem

有没有办法干掉PointRules类?我试过了,但它没有工作:

%w(attr1 attr2 attr3).each do |attribute|
  score 10, on: 'comments#create', do |comment|
    comment.attribute.present?
  end
end

它给了我这个错误:

private method `attribute' called for...

最终编辑:

下面提供的答案有用,你可以通过这样的方式进一步干你的代码:

%w(attr1? attr2? attr3?).each do |attr|
  score 5, on: ['comments#update', 'users#update'] do |item|
    item(attr).call
  end
  score 10, on: ['comments#create', 'users#create'] do |item|
    item(attr).call
  end
  score 15, on: ['comments#delete', 'users#delete'] do |item|
    item(attr).call
  end
end

1 个答案:

答案 0 :(得分:4)

对不起等待:(

这是一个可以帮助您的解决方案

%w(attr1? attr2? attr3?).each do |attr|
  score 10, on: 'comments#create', do |comment|
    comment.method(attr).call
  end
end

Active Record为您的所有列添加布尔方法,这就是我在列上使用问号的原因。

如果您有任何疑问,请与我们联系。