ruby-on-rails - Rails 3 : How to add user_id - current_user. id 关联?

标签 ruby-on-rails ruby-on-rails-3

我有这部分代码:

def create
  @post = Post.find(params[:post_id])
  @comment = @post.comments.create(params[:comment])
  redirect_to post_path(@post)
end

http://guides.rubyonrails.org/getting_started.html#generating-a-controller

但是我的评论表中多了一列“user_id”。如何将 user_id 与 current_user.id 关联起来?

ps。我的应用程序中有工作示例:

@post = Post.new(params[:post])
@post.user_id = current_user.id

最佳答案

我会说这样的话。

@comment = @post.comments.build(params[:comment])
@comment.user_id = current_user.id
@comment.save

您可以将 user_id 放入参数中,但这并不安全。 user_id 不应该位于“attr_accessable”中,因此它将受到mass_assignment 的保护。

您可以在一个衬垫中完成上述操作,但我个人不喜欢这样做。我想这样一来,就更清楚了。如果您想进行错误处理,可以像这样进行保存。

if @comment.save
  # success
else
  # error
end

关于ruby-on-rails - Rails 3 : How to add user_id - current_user. id 关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128214/

相关文章:

javascript - Rails 销毁 js.erb

ruby-on-rails - 如何根据 Rails 中的请求方法路由到不同的操作?

file - 如何直接从 ZipEntry(RubyZip、Paperclip、Rails 3)获取临时 File 对象(具有正确的内容类型,无需写入磁盘)?

ruby-on-rails - Rails4 : How to display the data when association data doesn't exist

ruby-on-rails - has_many :through how it works?

ruby-on-rails - ruby rails : Concatenate two pieces of data into one column

ruby-on-rails - 重定向 ruby​​ 脚本的 shell 输出

ruby-on-rails - 设计:仅在某些情况下询问密码

ruby-on-rails - Haml for rails,单独使用 'haml' gem 或与 'haml-rails' 一起使用

ruby-on-rails - 无法理解 rails activerecord typecast 的原因