ruby-on-rails - Ruby on Rails : Saving user id manually? 或者有更好的方法吗?

标签 ruby-on-rails ruby ruby-on-rails-4 devise

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

我有模型:

class Project < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :projects
end

在我看来:

<%= simple_form_for @project do |f| %>
  <%= f.hidden_field :value => current_user.id %>
<% end %>

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

谢谢!


编辑:将所有行程转换为项目,以便其他需要帮助的人知道

最佳答案

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

假设您使用的是强参数

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

关于ruby-on-rails - Ruby on Rails : Saving user id manually? 或者有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499049/

相关文章:

ruby-on-rails - 按条件划分的状态机事件不起作用

ruby - 为什么我不能在 Ruby 代码块中重新分配变量?

javascript - 当用户在选择下拉列表中选择其他标题时显示输入字段

ruby - Watir 可以与 Firefox Extensions 交互吗?

ruby-on-rails - Rails API 的 POST 请求为强参数返回 ParameterMissing

ruby-on-rails - attr_accessor 和 attr_reader 在 Rails 4 中不起作用

ruby-on-rails - 当方法存在时,Rails 在循环中出现 NoMethodError

ruby-on-rails - 重用 named_scope 来定义另一个 named_scope

javascript - 使用 AJAX 删除项目时如何重新加载 jQuery Masonry?

javascript - 为什么实际的鼠标点击不起作用,但在 JS 控制台中执行 .click() 却可以?