嵌套资源缺少_url

时间:2012-08-01 02:17:04

标签: ruby-on-rails ruby activerecord

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

@record =  @user.records.create(params[:record])
respond_with(@user, @record)