【问题标题】:Rails 3 multi nested resource formRails 3 多嵌套资源表单
【发布时间】:2014-03-20 21:46:13
【问题描述】:

我有这样的路线:

  resources :projects do
    resources :chats
    resources :lists do
      resources :issues
    end
  end

现在我正在尝试设置正确的表单以将问题添加到列表中,但我不知道如何...目前它看起来像这样:

控制器:

def show
    @project = Project.find(params[:id])
    @list = List.new
    @issue = @list.issues.build


    @chats = @project.chats
    @lists = @project.lists.includes(:issues)


    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @project }
    end
  end

表格

form_for [@list, @issue], remote: true do |f|

我得到这样的错误:

undefined method `list_issues_path' for #<#<Class:0x00000003996f30>:0x000000038ad678>

我应该如何解决?提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 nested-resources


    【解决方案1】:

    我相信这是因为它需要嵌套在项目下。如果你运行rake:routes 我想你有类似projects/:id/lists/:id/issues/ 的东西吗?您可以看到旁边的路线名称。否则,您可以将 shallow 选项添加到列表路由。

    【讨论】:

    • 是的,我的路线和你写的一模一样。
    • 试试form_for [@project, @list, @issue]
    • 那么控制器应该是什么样子呢? :-)
    • 如果您注销 params 对象,我认为您将拥有 params[:project_id] params[:list_id]params[:id]。您可以使用它们来获取对象。或者,如果您正确设置了关系,则可以根据问题的 id 获取它们。
    • form_for 与三个模型不起作用。我改用shallow: true。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    相关资源
    最近更新 更多