Ruby on rails Rails 3:获取要保存在不同模型中的当前用户id

Ruby on rails Rails 3:获取要保存在不同模型中的当前用户id,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个用户和一个文章模型。 当我保存一篇文章时,我还需要保存哪个用户创建了文章,因此我需要他的ID。所以我需要知道是哪个用户创建了它 我的文章.rb class Article < ActiveRecord::Base belongs_to :user attr_accessible :title, :description, :user_id validates_length_of :title, :minimum => 5 end 我的文章 <div cl

我有一个用户和一个文章模型。 当我保存一篇文章时,我还需要保存哪个用户创建了文章,因此我需要他的ID。所以我需要知道是哪个用户创建了它

我的文章.rb

class Article < ActiveRecord::Base
  belongs_to :user
  attr_accessible :title, :description, :user_id

  validates_length_of :title, :minimum => 5
end
我的文章

<div class="field">
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label :description %><br />
    <%= f.text_area :description %>
  </div>
那么,如何在文章模型中正确设置用户id呢?我想要一个谁有一个会议!我在应用程序控制器中有一个helper方法,但我不确定如何使用它

class ApplicationController < ActionController::Base
  protect_from_forgery

  helper_method :current_user

  private
  def current_user
    @current_user ||= User.find(session[:user_id]) if session[:user_id]
  end
end

谢谢你的帮助

您应该在控制器中执行以下操作:

def create
  @article = current_user.articles.build(params[:article])
  ...
end


但是我更喜欢第一个。

您应该在控制器中执行以下操作:

def create
  @article = current_user.articles.build(params[:article])
  ...
end


但我更喜欢第一个。

查看此答案:查看此答案:几分钟前我提交了一个不同的答案,但我也喜欢@joklan的第一个选项。这将利用用户和文章之间的关系创建一篇新文章,其用户id属性将自动设置为当前登录的用户。文章模型中是否有生成方法?生成是一种自动生成的方法,有关详细信息,请查看此处:生成基于关系。current_user.articles.build与Article.new类似,但是在创建关系以使新文章属于用户的位置,user id设置为current_user.id。更多信息请参见:。几分钟前我提交了一个不同的答案,但我也喜欢@joklan的第一个选项。这将利用用户和文章之间的关系创建一篇新文章,其用户id属性将自动设置为当前登录的用户。文章模型中是否有生成方法?生成是一种自动生成的方法,有关详细信息,请查看此处:生成基于关系。current_user.articles.build与Article.new类似,但是在创建关系以使新文章属于用户的位置,user id设置为current_user.id。请参阅此处的详细信息:。
def create
  @article = Article.new(params[:article].merge(:user_id => current_user.id))
  ...
end