Practico mi Ruby on Rails creando una aplicación simple donde los usuarios pueden registrarse (usando Devise) y publicar artículos.¿Cómo pasar el usuario actual de Devise como user_id?
Después de instalar Diseñar, sigo adelante y generar un andamio para los artículos
rails g scaffold article title:string article:text user_id:integer
A continuación, se crea el controlador de usuario Diseñar
rails generate devise User
Mi controlador de artículo:
class Article < ActiveRecord::Base
belongs_to :user
end
Mi controlador de usuario:
class User < ActiveRecord::Base
has_many :articles
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
end
Ahora mi pregunta es: ¿cómo se hace para que user_id en http://localhost:3000/articles/new/ sea automáticamente current_user.id?
Además, en http://localhost:3000/articles/ el usuario solo debería poder ver los artículos asociados con su user_id, no hay nadie más. ¿Qué cambios en el controlador de artículos debo hacer para hacer esto?
Es la primera vez que escribo aquí en Stack Overflow y su ayuda será apreciada ... ¡Muchas gracias!
EDIT encontró la solución a la primera pregunta, para referencia futura.
puse
<%= f.hidden_field :user_id %>
en _form.html.erb y
def create
@article.user_id = current_user.id
...
end
a mi controlador artículo. Esto está pasando satisfactoriamente el archivo current_user.id como el user_id del artículo perfectamente.
Sea más específico. Tienes poco sentido. – clyfe
Pensé que lo expliqué tan bien como pude ... pero está bien, TL; dr -> la tabla articles tiene 3 campos (título, artículo y user_id). Estoy preguntando cómo user_id en el formulario de creación puede = usuario_actual.id de Devise. – cdotfeli