fea*_*ool 1 ruby-on-rails helpers ruby-on-rails-3
我有一个视图助手文件,app/helpers/analysis_helper.rb,我在各种视图文件中使用的顶级方法.工作良好.然后我在analysis_helper.rb中定义了一个AnalysisSummary类来打包一些特定于视图的功能.
但是,当我尝试在视图文件中实例化AnalysisSummary时,我收到错误:
uninitialized constant ActionView::CompiledTemplates::AnalysisSummary
Run Code Online (Sandbox Code Playgroud)
也许Rails告诉我,我不应该在帮助文件中定义一个类?如果是这样,你会在哪里建议停车分析共享?它不是控制器,它不是模型......
谢谢.
在Railscasts#213(修订版)(订阅者仅链接,唉)中,Ryan Bates提供了一个示例,说明如何(以及为什么)将一个类包含在帮助器中.基本要点是这样的:
# app/helpers/calendar_helper.rb
module CalendarHelper
def calendar(date = Date.today)
Calendar.new(self, date).render
end
class Calendar
def render
# Calendar, render thyself
end
# ... additional methods called by #render
end
end
Run Code Online (Sandbox Code Playgroud)
对于那些反对帮助者中的课程的人,你对Ryan的选择有何看法?助手是为了产生标记,对吧?所以,如果所有内部的逻辑,涉及渲染(相当复杂的)HTML,我会认为它做(而不是它是什么就是),使得它适合加入一个帮手.
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |