【发布时间】:2015-01-21 15:27:02
【问题描述】:
如果关联已定义,我正在尝试在我的助手上创建一个通用方法来呈现父对象关联。
下面是一些示例代码: 第一个方法显式呈现关联。下一个方法尝试通用(这个父对象有 9 个关联,所以我认为编写 9 个渲染方法不会 DRY。)
module SurveysHelper
def render_demographics_part(survey)
render survey.demographics_part if survey.demographics_part
end
def gen_renderer(part, survey)
render survey.part if survey.part
end
end
【问题讨论】:
-
您可以直接调用您的视图
render(survey.part) || content_tag(:p, 'No part found')。对于每个关联,您必须定义一个与该关联类似的部分名称。以demographics_part为例,您的视图中必须有一个名为demographics_parts的文件夹,并且在该文件夹中,当您调用render(survey. demographics_part)名称_demographics_part .html.erb时将呈现部分内容。 -
@Octopus-Paul,听起来你在说我必须明确渲染这些部分。您的示例
render(survey.part) || content_tag(:p, 'No part found')将不起作用,因为未定义survey.part。必须是render(survey.demographics_part) || content_tag(:p, 'no part found')还是我错过了你的意思? -
我使用
survey.part只是为了通用。看看这里speakerdeck.com/carlosantoniodasilva/… 在第 98 和第 99 幻灯片,以获得更好的解释
标签: ruby-on-rails view associations helper