我有一个带有相关控制器的“部分”模型和一个“页面”模型,并且希望两者都呈现相同的视图。无论是渲染页面还是部分,我都在尝试获取类别。
在页面中,通过部分引用类别。
通过以下方式链接到某个部分时,它会正确呈现:/sections/8
但是,当通过以下方式链接到页面时:/pages/2
我在助手的“if @page.category”部分收到错误:“# 的未定义方法 `category'”。
页面.rb
class Page < ActiveRecord::Base
attr_accessible :skin_id, :section_id, :name, :title, :content
belongs_to :skin
belongs_to :section
validates_presence_of :skin
validates_presence_of :section
end
部分.rb
class Section < ActiveRecord::Base
attr_accessible :category_id, :skin_id, :page, :name, :title, :content
has_many :pages
belongs_to :category
belongs_to :skin
validates_presence_of :category
validates_presence_of :skin
validates_presence_of :name
validates_presence_of :title
end
pages_helper.rb
module PagesHelper
def category
if @page.category
@page.category
else
@page.section.category
end
end
end
page.html.haml
-@sections = Section.all
%nav#side
%ul
-@sections.each do |section|
-if section.category == category
%li
= link_to section.title, section
%ul
-section.pages.each do |page|
%li
= link_to page.title, page