有没有一种更动态的方法在 Ruby on Rails 控制器的 "params.require" 方法中列出编号参数?



在我的Rails 4应用程序中,我有一个称为"游戏"的对象(该对象占据了玩家在三个周期曲棍球游戏中获得的点),其中三个参数为"sige_1_goals"," ofend_2_goals"one_answers" ofend_3_goals"。

因此,当我将它们声明为游戏控制器文件中的强参数时,我得到了:

 def game_params
   params.require(:game).permit(:player_id, :period_1_goals, period_2_goals, period_3_goals)
 end

是否有一种更快的方法来定义1到3的" sege_x_goals",而不是单独列出每个参数?您知道,使用与此相同原理(不起作用)的东西:

 def game_params
   params.require(:game).permit(:player_id)
   (1..3).each do |x|
     params.require(:game).permit(:period_#{x}_goals)
   end
 end

这应该有效:

def game_params
   params.require(:game).permit(:player_id, *((0..3).map { |x| "period_#{x}_goals".to_sym }))
end

最新更新