以下では、配列を返す必要があるMovieというモデルにクラスメソッドを作成しました。
def self.all_ratings
Array['G','PG','PG-13','R','NC-17']
end
そして、私のムービーコントローラーでは、次のインスタンス変数を使用してアクセスします。
@all_ratings = Movie.all_ratings
ただし、インデックスビューで使用すると、次のエラーが発生します。
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
アレイを適切に作成していると思いますが、間違っている可能性があります。これらのエラーが発生する理由について何か提案はありますか?
以下は、@all_ratingsが使用されているビューです。
%h1 All Movies
= form_tag movies_path, :method => :get do
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]"
= submit_tag 'Refresh'
そして、これが私が@all_ratingsをコントローラーに実装した方法です
class MoviesController < ApplicationController
@all_ratings = Movie.all_ratings