我正在学习 Rails,我只是想知道我编写的某些代码是否正确且安全。我有两个模型,一个用户模型和一个帖子模型。帖子属于用户,所以我想在创建对象时自动传递 user_id 来发布。我在 post 控制器中使用了一个 assign_attributes 方法,使用 devise 提供的 current_user 帮助器来设置 user_id。下面是我的相关代码。我再次想知道这是否正确,或者是否有更好的方法。
def create
@post = Post.new(params[:post])
@post.assign_attributes({:user_id => current_user.id})
end
后模型
class Post < ActiveRecord::Base
attr_accessible :content, :title, :user_id
validates :content, :title, :presence => true
belongs_to :user
end
用户模型
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :posts
end