如何通过隐藏的表单字段安全地传递相关的Class_id

时间:2011-07-30 19:04:31

标签: ruby-on-rails-3 model associations

我有一个GroupCoach模型,Group Coaches has_many:groups。在我的新组表单中,我想将group_coach_id传递给隐藏字段中的Group对象,以便组与GroupCoach关联,而无需用户选择。

所以在我的Groups_Controller

 @group = Group.new
 @group_coach = GroupCoach.first(:order => "RAND()")

这会得到一个随机的GroupCoach。然后在新的组视图中我有一个隐藏的字段

<%= f.hidden_field @group_coach  %>

这显然不是100%正确的。它确实传递了group_coach_id但它没有告诉表单将​​哪个列保存在...

我也听说这是非常不安全的......

2 个答案:

答案 0 :(得分:1)

我使用以下代码来解决此问题

<%= f.hidden_field :group_coach_id, :value => @group_coach.id   %>

但这是最安全的吗?看起来很不安全,因为我可以改变Firebug中的值或其他东西......

答案 1 :(得分:1)

制作令牌列。只需SHA1加密它(或任何你选择的)并传递它。猜测起来要难得多。