Form_for子资源抛出错误

时间:2014-08-02 11:02:14

标签: ruby-on-rails model-view-controller ruby-on-rails-4 nested-resources

我有两个模型:PointPointPagePoint has_many :point_pagesPointPage belongs_to :point

routes.rb

resources :points do
  resources :point_pages
end

创建Point rails后,会创建两个属于该点的PointPages

point_pages_controller.rb

def index
  point = Point.find(params[:point_id])
  @page_from = point.point_pages.find_by(page_type_from: true)
  @page_to = point.point_pages.find_by(page_type_from: false)
end

因此,我需要在一个PointPages页面上为某些@page_from显示@page_toPointindex)。我需要允许用户在该页面上编辑这些PointPages。但是,当我在此form_for @page_from页面上创建form_for @page_toindex时,出现错误:

undefined method `point_page_path' for #<#<Class ... >>

感谢您的任何想法!

1 个答案:

答案 0 :(得分:0)

您应该将行动更改为:

def index
  @point = Point.find(params[:point_id])
  @page_from = point.point_pages.find_by(page_type_from: true)
  @page_to = point.point_pages.find_by(page_type_from: false)
end

这样你就会得到@point

在你看来,你应该创建这样的表格:

form_for [@point, @page_from]

form_for [@point, @page_to]

当您有嵌套路由时,您需要调整form_for对象才能正常工作。您可以在此处查看更多详细信息http://guides.rubyonrails.org/form_helpers.html