Проверка формата с помощью регулярного выражения в Rails получает: «неопределенная локальная переменная или метод» - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть модель продукта с атрибутом: image_url, который я пытаюсь проверить:

class Product < ApplicationRecord
  validates ​:image_url​, allow_blank: true, ​format:
    { with: /​​\w+\.(gif|jpg|png)\z/i,
      message: "Image must have GIF, JPG, or PNG extension"
    }
end

Цель проверки формата - разрешить всем URL-адресам заканчиваться на .gif, .png или .jpg. Регулярное выражение, кажется, работает нормально, вот ссылка Rubular:
http://rubular.com/r/GQx0oAaI1x
Но при попытке получить доступ к моему приложению (любому представлению или консоли) я получаю:

undefined local variable or method `image_url​' for #<Class:0x007f84c9baf0b8>

Это моя схема:

create_table "products", force: :cascade do |t|
  t.string "title"
  t.text "description"
  t.string "image_url"
  t.decimal "price", precision: 8, scale: 2
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

Все продукты, представленные в моей базе данных, имеют image_url. Я не понимаю, почему ошибка говорит мне, что image_url - неизвестный метод для Class, а не для Product object.

Это журнал моего сервера:

Started GET "/products" for 127.0.0.1 at 2018-09-05 14:09:55 +0200
Processing by ProductsController#index as HTML
Completed 500 Internal Server Error in 21ms (ActiveRecord: 3.8ms)



NameError - undefined local variable or method `image_url​' for <Class:0x00007fc3651c1e40>:
  app/models/product.rb:5:in `<class:Product>'
  app/models/product.rb:1:in `<main>'
  app/controllers/products_controller.rb:7:in `index'

Это мое индексное действие в ProductsController:

def index
  @products = Product.all
end

А это мой index.html.haml:

%h1 Your Pragmatic Catalog
%ul.catalog
  - @products.each do |product|
    %li
      = image_tag(product.image_url)
      %h2= product.title
      %p
        = sanitize(product.description)
      .price
        = number_to_currency(product.price)

Может ли кто-нибудь помочь мне понять, в чем проблема?

Я использую ruby ​​2.5.1 с Rails 5.2.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...