【问题标题】:Using asset_path in Rails console在 Rails 控制台中使用asset_path
【发布时间】:2017-12-26 21:30:52
【问题描述】:

在我的Character 模型中我添加了:

character.rb

before_save do
  self.profile_picture_url = asset_path('icon.png')
end

但是,对于数据库中已经存在的所有字符,它们的profile_picture_urlnil。因此,我想进入控制台并遍历所有这些并设置它。在我尝试过的控制台中:

Character.find_each do |c|
  c.profile_picture_url = asset_path('icon.png')
end

但这给出了错误:

NoMethodError: undefined method `asset_path' for main:Object

我希望我已经充分传达了我想要实现的目标。我哪里错了?

【问题讨论】:

    标签: ruby-on-rails ruby rails-console


    【解决方案1】:

    查看AssetHelper 的文档:

    这个模块提供了生成资产路径和url的方法。

    您可以通过以下几种方式在控制台中访问asset_path

    ActionController::Base.helpers.asset_path('icon.png')
    

    或者

    include ActionView::Helpers::AssetUrlHelper
    asset_path('icon.png')
    

    另外附注并与问题分开,如果您正在更新您的所有Character,我将使用update_all 作为您的profile_picture_url 属性。

    Character.update_all(profile_picture_url: asset_path('icon.png')
    

    【讨论】:

      【解决方案2】:

      如果您尝试调用asset_path,而不是助手或视图,则调用类似

      ActionController::Base.helpers.asset_path("icon.png")
      

      【讨论】:

        猜你喜欢
        • 2013-12-22
        • 2011-05-11
        • 2021-05-05
        • 2016-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        相关资源
        最近更新 更多