我有两个模型:Point
和PointPage
。 Point has_many :point_pages
和PointPage 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_to
(Point
和index
)。我需要允许用户在该页面上编辑这些PointPages
。但是,当我在此form_for @page_from
页面上创建form_for @page_to
和index
时,出现错误:
undefined method `point_page_path' for #<#<Class ... >>
感谢您的任何想法!
答案 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