0

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

我不确定为什么会发生这种情况,但如果有人有任何想法,我将不胜感激。此外,如果需要更多代码来提供帮助,请告诉我,以便我可以添加它。

忘记添加我的 rake 路线:

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
4

1 回答 1

1
@record =  @user.records.create(params[:record])
respond_with(@user, @record)
于 2012-08-01T02:33:48.880 回答