Ruby on Rails 4.0的新手,我在使用JSON添加连接表中的数据时遇到了一些麻烦。我在前端使用AngularJS,我似乎无法在这里找到一个很好的例子来帮助我。
简而言之,我有一个带有用户ID的邀请。我有一个用户ID的用户。知道邀请ID后,我想获得与该邀请对应的用户名。
Invite 1: UserID: 10
Invite 2: UserID: 11
Invite 3: UserID: 12
UserID: 10 Name: Owen
UserID: 11 Name Greg
控制器 - 邀请
# GET /invites/1
# GET /invites/1.json
def show
@invite = Invite.includes(:user).find(params[:id]).to_json(include: :user)
end
模型 - 邀请
class Invite < ActiveRecord::Base
belongs_to :user
has_one :meal
has_one :event
has_one :registry
end
模特 - 用户
class User < ActiveRecord::Base
has_one :invite
end
但是每当我检查/ invites / 1时,我都会得到这个。
{"id":1,"created_at":"2013-12-06T20:14:39.001Z","updated_at":"2013-12-06T20:58:15.597Z","event_id":7,"meal_id":8,"registry_id":0,"rsvp":false,"user_id":9}
非常感谢任何帮助!
答案 0 :(得分:5)
你的节目应该是:
def show
@invite = Invite.includes(:user).find(params[:id])
respond_to do |format|
format.json { render :json => @invite.to_json(include: :user) }
end
end
答案 1 :(得分:1)
我建议你使用JBuilder http://rubygems.org/gems/jbuilder。您可以使用@ invite.to_json,但JBuilder可以让您更好地控制输出。