Ruby on rails 3.1 Rails 3.1资产管道外部视图

Ruby on rails 3.1 Rails 3.1资产管道外部视图,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails 3.1,Asset Pipeline,我试图在CarrierWave上传程序中设置CarrierWave的默认url。为此,我想使用资产管道在uploaders/image\u uploader.rb中执行以下操作: def默认url 图像路径('question\u mark.png') 结束 但是它失败了,因为:ImageUploader的未定义的方法` 然后我尝试将include ActionView::Helpers::AssetTagHelper添加到uploaders/image\u uploader.rb中,但出现以下

我试图在CarrierWave上传程序中设置CarrierWave的默认url。为此,我想使用资产管道在
uploaders/image\u uploader.rb中执行以下操作:
def默认url
图像路径('question\u mark.png')
结束

但是它失败了,因为:ImageUploader的
未定义的方法`

然后我尝试将
include ActionView::Helpers::AssetTagHelper
添加到
uploaders/image\u uploader.rb
中,但出现以下错误:
未定义的局部变量或方法
config'for:ImageUploader`


你知道如何让
图像路径
助手在视图之外工作吗?

我问了一个类似的问题,并得出结论:没有办法让任何
*\u路径
*\u url
助手在模型中工作。我知道这是绝对不应该做的(违反MVC等等),但似乎根本做不到


我的问题是为回形针附件设置
default\u url
,最后我将其设置为我将提供给
image\u标签的路径(如果
image.png
位于
app/assets/images
public/images
,则只需
'image.png'/code>)然后在访问时使用
image\u path
。这对你也有用吗?

我不确定我在这里到底想做什么,最终解决了这个问题,但如果有人来这里想在他们的模型中添加_路径或_url帮助程序,请执行以下操作:

class Post包括Rails.application.routes.url\u帮助程序
#这样您就可以使用_url参数了
#不过,您需要在配置中定义主机才能使其正常工作
默认\u url\u选项[:主机]=Rails.configuration.host
# ...
结束

我遇到了一个类似的问题,我通过在Rails 3.2中执行以下操作来解决它

我声明了以下模块:

module MyApp::AssetHelper
  def config
    @config ||= ActionController::Base.config
    @config.asset_host = 'http://whereveryouhostyour.assets' #not needed if you have this defined in your environment file
    @config
  end

  def controller
    ActionController::Base
  end
end
我在模型中包含了以下帮助程序,我想在其中使用asset_标记帮助程序

include Sprockets::Helpers::RailsHelper
include MyApp::AssetHelper

这允许我在需要的地方调用资产标记帮助程序。

Rails.application.routes.url\u帮助程序应该用于生成routes.rb中定义的url,而不是图像url