2017-07-21 2 views
0

Dans mon modèle Character J'ai ajouté:Utiliser asset_path dans la console Rails

character.rb

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

Cependant, pour tous les caractères qui existent déjà dans la base de données, leur profile_picture_url est nil. Je veux donc entrer dans la console et parcourir tous à travers eux et le définir. Dans la console j'ai essayé:

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

Mais cela donne l'erreur:

NoMethodError: undefined method `asset_path' for main:Object 

J'espère avoir suffisamment communiqué ce que je suis en train de réaliser. Où vais-je mal?

Répondre

0

Vérifiez la documentation AssetHelper:

This module provides methods for generating asset paths and urls.

Vous pouvez accéder asset_path dans la console quelques façons:

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

Ou

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

également sur un côté noter et séparer de la question, si vous mettez à jour tous vos Character « s j'utiliser update_all pour votre attribut profile_picture_url.

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