【问题标题】:Devise nested resource view shows no method error设计嵌套资源视图显示没有方法错误
【发布时间】:2014-07-04 14:39:27
【问题描述】:

我的嵌套资源是农场。在我的路线中,我有:

resources :users do
  resource :farm
end


devise_for :users, :path => 'accounts'

因此,注册等的设计路径正在工作并且没有产生问题。但是当我尝试创建一个新农场时,我收到了这个错误:

undefined method `farm_user_path' for #<#<Class:0x463d8f8>:0x46493e8>

我通过以下方式访问它:

<%= link_to "New Farm", new_user_farm_path(current_user) %>

在我的农场控制器中,我有:

class FarmsController < ApplicationController
# GET /farms
# GET /farms.json

include Devise::Controllers::Helpers
helper_method :current_user

def new
@farm = Farm.new
@user = User.find(current_user)

respond_to do |format|
  format.html # new.html.erb
  format.json { render json: @farm }
end
end

...
end

我制作新农场的形式是:

<%= form_for([@farm, @user]) do |f| %>
...

所有关联和路由都正常。我错过了什么?

【问题讨论】:

  • 试试这样&lt;%= form_for([@user, @farm]) do |f| %&gt;
  • 得到了基本相同的错误:#:0x2bbe148> 的未定义方法 `user_farms_path'

标签: ruby-on-rails forms nested


【解决方案1】:

找到了解决办法。问题是我的表单需要如下所示:

<%= form_for([@user, @farm], :url=> new_user_farm_path(@user)) do |f| %>

【讨论】:

    猜你喜欢
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多