【问题标题】:Ruby on Rails Helper in Controller Refinery CMSController Refinery CMS 中的 Ruby on Rails 助手
【发布时间】:2012-02-08 05:15:01
【问题描述】:

我正在将 Refinerycms 用于我的 Web 应用程序。我创建了一个引擎并创建了一个名为 PostsHelper 的助手。我希望能够在我看来(显然)利用助手,但它不起作用。我一直在查看炼油厂博客的一些示例代码,它在控制器中使用了类似以下内容:

 helper :posts

但是,当我将此代码添加到我的帖子控制器时,我收到以下错误:

 LoadError in PostsController#index

 Missing helper file helpers/posts_helper.rb

这是我的帖子助手:

 require 'nokogiri'

  module PostsHelper
def readMore(post)
    doc = Nokogiri::HTML(post.message)
    intro = doc.search("div[class='intro']")
    result = Nokogiri::XML::DocumentFragment.parse(intro)
    result << link_to("Read More", post_path(post))
    result.to_html
end     

所以最终我对如何在引擎中“让助手帮助视图”感到困惑。

感谢任何帮助。

【问题讨论】:

  • 您的posts_helper.rb 文件在什么路径中?
  • 嘿,这是供应商/引擎/帖子/应用程序/帮助者
  • 你试过把它放在你自己的app/helpers吗?
  • 还没有,但我想有一种方法可以将所有引擎代码放在一起。

标签: ruby-on-rails refinerycms


【解决方案1】:

答案已在 IRC Refinerycms 频道中提供。

我在路径中添加了以下内容:vendor/engines/posts/lib/refinerycms-posts.rb

 config.to_prepare do
    ::ApplicationController.helper(PostsHelper)
  end

【讨论】:

  • 我不得不将它添加到一个扩展中:上面的代码必须进入 Engine 类,即 vendor/extensions//lib/refinery//engine.rb 但是这个完美运行
猜你喜欢
  • 2015-03-03
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多