NoMethodError (undefined method `url_for'
というエラーが発生するので忘備録
class Gmap < ApplicationRecord
require 'digest/md5'
include Rails.application.routes.url_helpers
validates :title, presence: true, length: { minimum: 1, maximum: 25 }
validates :comment, presence: true, length: { minimum: 1, maximum: 255 }
validates :latitude, presence: true
validates :longitude, presence: true
has_one_attached :image
before_save :encrypt_magic_word
def encrypt_magic_word
if magic_word.present?
self.magic_word = Digest::MD5.hexdigest(self.magic_word)
end
end
def image_url
# 紐づいている画像のURLを取得する
image.attached? ? url_for(image) : nil
end
belongs_to :user
end
APIモードでアプリを作っているのですがRails6になってActive Storageを使うにあたって
url_forなんてメソッドは無いよというエラーが出たので調べると
include Rails.application.routes.url_helpers
をurl_forを使っている所にincludeしないと使えなかったので共有します。
ちなみに config/environments/development.rb
に下記も追加しないとダメです。
Rails.application.routes.default_url_options[:host] = 'localhost'
Rails.application.routes.default_url_options[:port] = 3000