好的,目前我有一张表格
<div class="field"> <%= f.label :title %><br/> <%= f.text_field :title %><br/> <%= f.label :itunesurl %><br /> <%= f.text_field :itunesurl %><br /> <%= f.hidden_field :user_id,:value => current_user.id %> </div> <div class="actions"> <%= f.submit %> </div>
它将current_user.id传递给我的“app”模型的create方法,该方法在保存之前将其创建为:
@app = App.new(params[:app])
但是我有(伪代码)的关联
user has_many apps apps belongs_to user
问题:在create方法中执行类似的操作是否更安全(因此表单不会被修改)?
@user = current_user @app = @user.apps.create(params[:app])
如果是这样……我究竟将如何实际实现上面的代码(它在语法上不正确..只是伪)?
谢谢!
解决方法
是的,使用您建议的第二种方式是最好的方法
@user = current_user @app = @user.apps.create(params[:app])
另外,请确保您保护自己免受大规模任务的影响,请阅读此http://stephensclafani.com/2010/01/04/ruby-on-rails-secure-mass-assignment/