RoR3 Devise - Проекты на пользователей - PullRequest
2 голосов
/ 18 января 2011

Я работаю над очень простым приложением для управления пользовательскими проектами. Есть две модели, Пользователь и Проект. Пользователь должен просматривать только созданные им проекты. Итак, модель Project имеет столбец user_id для связи с пользователем. Модели:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :rememberable, :validatable
  has_many :projects, :dependent => :destroy

  attr_accessible :email, :password, :password_confirmation, :remember_me
end

class Project < ActiveRecord::Base
  belongs_to :user
end

Когда пользователь создает новый проект, идентификатор пользователя должен автоматически добавляться в столбец user_id. Это выполняется в Project controller под create action:

  def create
    params[:project][:user_id] = current_user.id
    @project = Project.new(params[:project])
    #...

Это работает, когда я добавляю user_id к params [: project], но у меня есть ощущение, что это неправильный способ сделать это Или это?

1 Ответ

3 голосов
/ 18 января 2011
  def create
    @project = current_user.projects.build(params[:project])
    #...

http://guides.rubyonrails.org/association_basics.html#has_many_collection_build

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...