Я практикуюсь в Ruby on Rails, создавая простое приложение, в котором пользователи могут регистрироваться (с помощью Devise) и размещать статьи.
После установки Devise я создаю шафл для статей
rails g scaffold article title:string article:text user_id:integer
Затем я создаю контроллер пользователя Devise
rails generate devise User
Мой контроллер статей:
class Article < ActiveRecord::Base
belongs_to :user
end
Мой контроллер пользователя:
class User < ActiveRecord::Base
has_many :articles
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
end
Теперь мой вопрос: как сделать так, чтобы user_id в http://localhost:3000/articles/new/ автоматически становился current_user.id?
Также, в http://localhost:3000/articles/ пользователь должен иметь возможность просматривать только статьи, связанные с его user_id, а не чьи-либо еще. Какие изменения в контроллере статей я должен сделать для этого?
Я впервые пишу здесь, на Stack Overflow, и ваша помощь будет оценена по достоинству. Спасибо большое!
EDIT нашел решение первого вопроса, на будущее.
Я поместил
<%= f.hidden_field :user_id %>
в _form.html.erb, а
def create
@article.user_id = current_user.id
...
end
в контроллер статьи. Это успешно передает current_user.id в качестве user_id статьи.