我正在使用public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new GlobalAuthoriseAttribute());
}
方法查找和比较两个单独表中的两列相同的值(order& player - 两个整数)。我正在尝试计算当前用户查找成功的次数(意味着成功匹配列),然后将其放入实例变量(<%= @total%>)以显示在当前用户上用户的索引视图(一旦我有计数,我乘以5,但这是任意的)。用户可以根据这些预测与结果的匹配程度对其进行排名,因此实际应用可能是排行榜类型的事情。
搜索了几个似乎在附近的答案(Counting occurrences of a given input),但并未让我找到解决方案(counting occurrences of items in an array python)。 (How to count the number of times two values appear in two columns in any order)
预测控制器:
where
结果控制器:
def index
if current_user.present?
@predictions = current_user.predictions.order(:order)
else
@predicitons = Prediction.all
end
@total = Result.where({ :order => @current_user.predictions.pluck(:order), :player_id => @current_user.predictions.pluck(:player_id) }).uniq.count*5.to_i
end
def new
if current_user.predictions.count < '32'.to_i
@prediction = Prediction.new(player_id: params[:player_id])
else
redirect_to "/predictions", alert: "You've maxed out on predictions"
end
end
def create
@prediction = current_user.predictions.build(predictions_params)
if @prediction.save
redirect_to "/predictions/new", notice: "This prediction's just been created."
else
redirect_to "/predictions", alert: "Something happened."
end
end
def edit
end
在预测控制器,索引操作中尝试了不同的代码。我在这里得到的最接近,但我没有得到一致的结果,因为它计算每个预测,对与错。我已经尝试在查找之前将变量设置为'0'.to_i,但仍然会得到不一致的结果。
def new
@result = Result.new
end
def create
@result = Result.new(results_params)
if @result.save
redirect_to "/results"
else
render "New"
end
end
对于经验丰富的眼睛,我觉得我忽略了一些相当明显的东西。我也意识到还有更多先进的方法来实现这一点,我不知道。有人建议将变量存储在会话或cookie中,这超出了我的经验,但我仍在继续研究这个选项。
感谢您的反馈。
示例数据库条目匹配:
@total = '0'.to_i