J'ai quelques problèmes pour faire une association entre 2 tables. je Les utilisateurs qui peuvent écrire des messagesRails 3.2 Associations et: include
Voici mon fichier de migration:
class LinkUsersAndPosts < ActiveRecord::Migration
def change
add_column :posts, :user_id, :integer
add_index :posts, :user_id
end
end
Mes modèles:
class Post < ActiveRecord::Base
attr_accessible :content, :title
belongs_to :user
end
class User < ActiveRecord::Base
attr_accessible :email, :login, :password, :password_confirmation, :rights
has_many :posts
end
Mon contrôleur:
class PostsController < ApplicationController
respond_to :json
def index
@posts = Post.includes(:user).all
respond_with @posts
end
def create
@post = Post.new(params[:post])
@post.user = current_user
if @post.save
render json: @post, status: :created, location: @post
else
render json: @post.errors, status: :unprocessable_entity
end
end
end
Les messages est correctement créé , l'id_utilisateur est défini tout va bien. Le problème est lorsque je veux récupérer la liste des messages, y compris l'utilisateur, la liste des messages est récupérer, mais je n'ai aucune donnée sur l'utilisateur, sauf son ID.
Réponse:
[
{
"content":"jksdjd",
"created_at":"2013-08-31T09:03:01Z",
"id":11,"title":"kdjs",
"updated_at":"2013-08-31T09:03:01Z",
"user_id":4
},
{
"content":"tez2",
"created_at":"2013-08-31T09:16:45Z",
"id":12,
"title":"test2",
"updated_at":"2013-08-31T09:16:45Z",
"user_id":4
}
]
Oh! Ma question était pour la réponse de l'index, mais le problème était que, donc je remplace 'respond_with @ posts' par:' render json: @ posts.to_json (: include =>: utilisateur) 'Et ça marche bien! Merci beaucoup ! –
Ah, désolé, concentré trop sur ces rendus et n'a même pas regardé le: respond_to! Bonne chose, c'était le même type de problème :) Content de vous aider. – chucknelson