如何将自定义投票按钮添加到rails应用程序

时间:2013-11-02 14:17:24

标签: ruby-on-rails rails-activerecord

所以这是一个想法

class Question < ActiveRecord::Base
  has_many : answers
end

class Answer < ActiveRecord::Base
  belongs_to :question
  has_one :vote
end

class Vote < ActiveRecord::Base
  belongs_to :question
end
  1. 如何限制用户可以提出的问题数量?
  2. 有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

回答第一个问题:

在QuestionsController创建方法的内部,您应该只添加一些类似于:

的代码
if user.questions.length > 3
  #tell them they can't ask more questions
else
  #create the question
end

到第二个:

另外,我认为让Vote成为自己的资源并不合理。我只想将“投票”或“投票”定义为答案中的字段。当答案被投票时,你只需增加Answer.votes。取决于您的用例

答案 1 :(得分:0)

此外,如果您想要更深入地自定义验证,您可以将验证委托给我们,假设user_id是嵌套在user模型中的question

class Question < ActiveRecord::Base
  validates_with LengthValidator, :field => :user_id
....
end

class LengthValidator < ActiveModel::Validator
  def validate(record)
    if options[:fields].any?
     #put the above conditional of @Accipheran
  end
end