在Rails中的表单外部设置字段值

时间:2013-04-03 00:12:03

标签: ruby-on-rails ruby forms activerecord

所以我有一个带有Post模型的Rails应用程序。其中一个字段是collection_id

每个帖子在发布时都应具有最新收藏的ID。如果我在后端有这个ID,并且我删除了collection_id的表单字段,如何在没有Rails前端的hidden_​​field的情况下确保此ID进入数据库?

隐藏字段的问题是用户可以使用Web检查器更改值。这需要是安全的。

最好的方法是什么?

1 个答案:

答案 0 :(得分:4)

如果你的后端有这个ID,你可以在保存前将它传递给你的控制器动作:

   @post = Post.create(params[:post])
   @post.controller_id = variable_holding_the_id
   if @post.save ...

或者在某些情况下,您可以使用回调在模型中执行此操作:

   after_create :set_collection_id

   def set_collection_id
      self.collection_id = variable_holding_the_id
   end