命名空间form_for中的嵌套资源

30 namespaces ruby-on-rails form-for ruby-on-rails-3

问题

form_for帮助程序错误地确定了命名空间内嵌套资源的路径.有问题的模型是:Forum :: ThreadForum :: Reply,分别位于我的models目录下名为"forum"的子文件夹中.这是在Rails 3 BETA 3中.

的routes.rb

  namespace :forum do
    root :to => 'threads#index'
    resources :threads do
      resources :replies
    end
  end
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/论坛/回复/ _form.html.haml

...
  - form_for [@thread, @reply] do |f|
...
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/论坛/ replies_controller.rb

...
  def new
    @reply = Forum::Reply.new
  end
...
Run Code Online (Sandbox Code Playgroud)

错误

undefined method `forum_thread_forum_replies_path'
Run Code Online (Sandbox Code Playgroud)

参考上面_form.html.haml中概述的行

Bit*_*oet 46

编辑解决方案以防人们不读取反应:

<%= form_for [:admin, @person, @image] do |f| %>
Run Code Online (Sandbox Code Playgroud)

旧的回应:

我有一个带有管理命名空间和人物和图像资源的项目,这是我在rails3中构建我的form_for的方式,我还没有找到一种方法来做更清洁...

<%= form_for [@person, @image], :url => admin_person_images_path do |f| %>
Run Code Online (Sandbox Code Playgroud)

  • 嗯,我开始再次搞乱它,现在我有以下工作.form_for [:admin,@person,@ image] do | f | (23认同)