2017-05-14 16 views
0

私のプロジェクトに問題があります。私は定義されていないメソッドを持っている例外が発生します。.erbファイルのRuby on Railsで未定義のメソッド

私は2つのエンティティの書籍とサブジェクトを持っています。ここにはBook_controllerのコードと例外が現れるerbファイルがあります。

class BookController < ApplicationController 

def list 
    @books = Book.all 
end 

def show 
    @book = Book.find(params[:id]) 
end 

def new 
    @book = Book.new 
    @subjects = Subject.all 
end 

def book_params 
    params.require(:books).permit(:title, :price, :subject_id, :description) 
end 

def create 
    @book = Book.new(book_params) 

    if @book.save 
     redirect_to :action => 'list' 
    else 
     @subjects = Subject.all 
     render :action => 'new' 
    end 
end 

def edit 
    @book = Book.find(params[:id]) 
    @subjects = Subject.all 
end 

def book_param 
    params.require(:book).permit(:title, :price, :subject_id, :description) 
end 

def update 
    @book = Book.find(params[:id]) 

    if @book.update_attributes(book_param) 
     redirect_to :action => 'show', :id => @book 
    else 
     @subjects = Subject.all 
     render :action => 'edit' 
    end 

end 

def delete 
    Book.find(params[:id]).destroy 
    redirect_to :action => 'list' 
end 

def show_subjects 
    @subject = Subject.find(params[:id]) 
end 

end 

とshow_subjects.html.erbファイル:

<h1><%= @subject.name -%></h1> 

<ul> 
    <% @subject.books.each do |c| %> 
    <li><%= link_to c.title, :action => "show", :id => c.id -%></li> 
    <% end %> 
</ul> 

メッセージがあります:

Showing E:/Ruby/library/app/views/book/show_subjects.html.erb where line #4 raised: 

undefined method `books' for #<Subject id: 1, name: "Physics"> 

私はRubyで初心者です、それは私の最初のプロジェクトだと私はありません持っていますアイデアが間違っている助けてくれてありがとう。

答えて

0

問題が解決しました。

同様の問題を探している人のために、私はSubjectクラスに 'has_many:books'を定義していないので、BookとSubjectの関係はありませんでした。

関連する問題