Rails 4: Insert Attribute Into Params

As an alternative for this case, you can required pass attribute via scope:

current_user.posts.create(post_params)


Found the answer here. Rather than inserting the attribute from within the controller action, you can insert it into the params definition with a merge. To expand upon my previous example:

private

  def post_params
    params.require(:post).permit(:some_attribute).merge(user_id: current_user.id)
  end

In addition to @timothycommoner's answer, you can alternatively perform the merge on a per-action basis:

  def create
    @post = Post.new(post_params.merge(user_id: current_user.id))
    # save the object etc
  end

private
  def post_params
    params.require(:post).permit(:some_attribute)
  end