Rails4 //将strong_parameters与其他参数追加

时间:2014-10-22 21:26:16

标签: activerecord ruby-on-rails-4 parameters mass-assignment

让我们说出以下行动'控制器:

class PostsController < ApplicationController

    def create
        @post = Post.create(post_params)
    end

    private
        def post_params
          params.require(:post).permit(:title, :content)
        end

end

创建记录时是否有单行方式可以执行此类操作:

def create
    @post = Post.create(post_params, user_id: current_user.id)
end

干净的方法是什么?有可能吗?

1 个答案:

答案 0 :(得分:1)

params是ActionController :: Parameters的一个实例,它继承自Hash。你可以用任何哈希做任何事情:

@post = Post.create(post_params.merge user_id: current_user.id)

或者...

post_params[:user_id] = current_user.id
@post = Post.create(post_params)