我有以下关联:
活动has_many Trips
Trip belongs_to Campaign
Trip has_many Events
Event belongs_to Trip
在我的 API 中,我接受对如下所示 URL 的 POST 请求:
/campaigns/1/trips
传递 JSON 的位置。JSON 看起来像这样:
{"trip":{"red":3, "blue":400, "events_attributes":[{"distance":300}, {"distance":400}]}}
我对事件控制器的 #create 操作如下所示:
def create
begin
@campaign = @user.campaigns.find(params[:campaign_id])
@trip = @campaign.trips.create(params[:trip])
render json: @trip, :status => :ok
rescue
render json: '', :status => :not_found
end
end
在我的 Trip 模型中,我添加了这一行:
accepts_nested_attributes_for :events
因此,我期望 Trip 将使用相应的事件创建,但我得到的是 401 未找到。如果我没有通过 events_attributes,则行程会正确创建。
我在这个问题之后制定了这个解决方案:Nested object creation with JSON in Rails
关于我做错了什么有什么想法吗?