0

我有以下关联:

活动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

关于我做错了什么有什么想法吗?

4

1 回答 1

1

我遇到了错误的异常,这让我很困惑。

我遇到了质量分配错误,因为无法从 Trip 模型访问 events_attributes,但我错误地将其视为未找到的异常。

我在 Trip 模型中添加了这一行:

attr_accessible :events_attributes

它就像一个魅力:)

哦,顺便说一句,我在救援中添加了这个:

rescue ActiveRecord::RecordNotFound
于 2013-06-13T15:47:21.173 回答