Ruby on Rails:手动保存用户ID?还是有更好的方法?

hel*_*llo 1 ruby ruby-on-rails devise ruby-on-rails-4

我应该手动将user_id添加到隐藏表单中吗?或者,还有更好的方法?

我有模特:

class Project < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :projects
end
Run Code Online (Sandbox Code Playgroud)

在我看来:

<%= simple_form_for @project do |f| %>
  <%= f.hidden_field :value => current_user.id %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

或者还有另一种方法吗?我想如果模型相互关联,它会自动将user_id添加到项目数据库中吗?

谢谢!


编辑:转换所有项目之旅,所以其他需要帮助的人知道

asi*_*niy 5

不.这不应该是形式,因为每个人都可以改变形式的隐藏价值.

假设您使用的是强参数

def create
  @project = Project.new(project_params)
  @project.save # or something else
end

def project_params
  params.require(:project).permit(something_permitted_here)
    .merge(user_id: current_user.id)
end
Run Code Online (Sandbox Code Playgroud)