我想知道是否需要为以下场景创建自定义验证。
我有一个预测模型,用户提交一组足球比赛的预测分数,按照fixture_date分组。
如果用户已经提交了针对这些游戏的预测,我想显示一条错误消息,指出他们无法提交错误,或者如果日期的预测存在则可能不会显示该表单。目前我可以为同一个游戏创建多组预测。可能验证会更好。我如何说明如果current_user的那个日期存在预测,那么不提交?
所以到目前为止我的设置看起来像这样
class Prediction < ActiveRecord::Base
attr_accessible :home_team, :away_team, :home_score, :away_score, :fixture_date, :fixture_id, :user_id
has_one :fixture
end
class Fixture < ActiveRecord::Base
attr_accessible :home_team, :away_team, :fixture_date, :kickoff_time, :prediction_id
end
预测控制器
def index
@predictions = current_user.predictions if current_user.predictions
end
def new
@prediction = Prediction.new
end
def create
begin
params[:predictions].each do |prediction|
Prediction.new(prediction).save!
end
redirect_to root_path, :notice => 'Predictions Submitted Successfully'
rescue
render 'new'
end
end
end
答案 0 :(得分:1)
我不确定预测和游戏之间的关系。你有Game
型号吗?如果是这样,那么这样的事情应该有效:
class Prediction < ActiveRecord::Base
attr_accessible :home_team, :away_team, :home_score, :away_score, :fixture_date, :fixture_id, :user_id
has_one :fixture
validates :fixture_id, :uniqueness => { :scope => :user_id,
:message => "only one prediction per game is allowed, for each user" }
end