rails version 4.2.6
Я пытаюсь создать компонент флажка в представлении для приложения Rails с использованием HAML.метод класса, определенный в модели, не отображающийся в контроллере
Соответствующий код вида:
= form_tag movies_path, :method => :get do
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]"
= submit_tag 'Refresh'
метод управления, «индекс», что делает этот вид предполагается создать переменный экземпляр «@all_ratings», который просто перечислима коллекция всевозможных рейтингов фильмов (["G", "PG", "PG-13", "R"]).
Соответствующий код контроллера:
def index
@movies = Movie.order(params[:sort_by])
@sort_column = params[:sort_by]
@all_ratings = Movie.all_ratings
end
Метод «all_ratings» не является методом класса модели «Movie», который я создал с:
class Movie < ActiveRecord::Base
attr_accessible :title, :rating, :description, :release_date
def self.all_ratings
Movie.select(:rating).uniq.map { |movie| movie.rating }.sort
end
end
Независимо от того, что я стараюсь я продолжаю получите ошибку:
NoMethodError in MoviesController#index
undefined method `all_ratings' for #<Class:0x000000047bcab0>
Здесь я исследовал несколько подобных ошибок, и они обычно кажутся t o быть связанными с созданием ошибок метода класса или экземпляра. Однако ни одно из средств защиты, которые работали для этих людей, не работало для меня до сих пор. Кажется, что никакие изменения, которые я делаю в модели, никогда не доступны для контроллера.
Большое спасибо.
Хмммм хорошо, мне кажется, я использовал метод два точно, и это не имеет никакого эффекта. :/Может быть, некоторая команда, которую я должен запустить после внесения изменений в модель? –