rails version 4.2.6
HAMLを使用してRailsアプリのビューにチェックボックスコンポーネントを作成しようとしています。
関連するビューコード:
= form_tag movies_path, :method => :get do
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]"
= submit_tag 'Refresh'
このビューをレンダリングするコントローラーメソッド「index」は、インスタンス変数「@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>
私はここでいくつかの同様のエラーを調査しましたが、それらは一般にクラスメソッドとインスタンスメソッドの間違いに関連しているようです。しかし、これらの人々のために働いた救済策のどれもこれまで私のために働いていません。モデルに加えた変更は、コントローラーからアクセスできないようです。
どうもありがとう。
私はついにそれを理解しました。別々のプロジェクトに「movie.rb」という2つのファイルがあり、間違ったファイルを編集していました。これは、テレビを分解して修理し、プラグを差し込むのを忘れただけだとわかるのと同じだと思います。:|
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加