私はRubyに非常に慣れていません。約4週間前に学習を始めたばかりです。私は現在、非常に小さなものを構築しています。本のタイトルに関するデータ入力を保存し、それをフォームの下のリストに吐き出すいくつかのフィールドを持つフォームこれまでのところ、これは私が得たものです:
books_controller.rb
class BooksController < ApplicationController
def add
@book_name = params[:book_name]
end
def sign_in
@book_name = params[:book_name]
unless @book_name.blank?
@book = Book.create({:book_name => @book_name})
end
@books = Book.all
end
end
これは、コントローラーが作成される場所です。かなり簡単だと思います。
これは、データベース作成者のことです。
class CreateBooks < ActiveRecord::Migration
def change
create_table :books do |t|
t.string :book_name
t.timestamps
end
end
end
それから app/models/book.rb があります:
class Book < ActiveRecord::Base
attr_accessible :book_name
end
次に、本の名前が追加され、リストが作成される追加テンプレートがあります(これはエラーが発生するページです)
<p>Find me in app/views/books/add.html.erb</p>
<h2>Recent book: <%= @book_name %> and the Author is: <%= @book_author %></h2>
<%= form_tag :action => 'add' do %>
<p>Book name: <%= text_field_tag 'book_name', @book_name %></p>
<%= submit_tag 'Add Book' %>
<% end %>
<p>Book list:</p>
<ul>
<% @books.each do |book| %>
<li><%= book.book_name %></li>
<% end %>
</ul>
<hr>
<%= debug(params) %>
<%= debug(assigns) %>
このエラーが発生する理由を誰かが知っているでしょうか。以下に完全なエラーを示します。
Books の NoMethodError#nil:NilClass の未定義メソッド「each」を追加
これについては、どんな助けも素晴らしいでしょう。
乾杯、マーク