我正在尝试使用ruby和rails编写一个简单的api,几乎让它工作,我只有一个问题。当我尝试创建嵌套资源时,我收到“未定义方法”错误。
我有两个模型,一个是用户模型,一个是记录模型。它们在routes.rb中设置如下:
resources :users, :except => [:new,:edit] do
resources :records, :except => [:new,:edit]
end
我的记录控制器包含以下内容:
def show
respond_with @user.records.find(params[:id])
end
def create
respond_with @user.records.create(params[:record])
end
当我使用参数调用show时,它会起作用并返回模型。当我发布创建时,我收到以下错误:
NoMethodError: undefined method `record_url' for #<RecordsController:0x007fea3682a5c8>
我不确定为什么会这样,但如果有人有任何想法,我将不胜感激。此外,如果需要更多代码来帮助,请告诉我以便我可以添加它。
忘记添加我的佣金路线:
user_records GET /users/:user_id/records(.:format) records#index
POST /users/:user_id/records(.:format) records#create
user_record GET /users/:user_id/records/:id(.:format) records#show
PUT /users/:user_id/records/:id(.:format) records#update
DELETE /users/:user_id/records/:id(.:format) records#destroy
users GET /users(.:format) users#index
POST /users(.:format) users#create
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
答案 0 :(得分:1)
@record = @user.records.create(params[:record])
respond_with(@user, @record)