Эй i've получил еще одну проблему;)неопределенный метод `model_name» для NilClass: Класс НО IST инициализируется
Когда я пытаюсь создать новую книгу в мое приложение всегда говорит
undefined method "model_name" for NilClass:Class
я узнал, что он должен быть неинициализированными парами в form_for функции ... Вот мой код:
NoMethodError in Books#new
Showing /app/views/books/_form.html.erb where line #1 raised:
undefined method `model_name' for NilClass:Class
Extracted source (around line #1):
1: <%= form_for(@book) do |f| %>
2: <% if @book.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@book.errors.count, "error") %> prohibited this book from being saved:</h2>
Контроллер:
#GET /books/new
#GET /books/new.json
def new
@users = User.find(:all)
@book = Book.new
1.times{ @book.chapters.build }
@book.users = [current_user]
respond_to do |format|
format.html #new.html.erb
format.json { render json: @book }
end
end
Я не знаю, почему это должно быть неинициализированным, она работала должным образом, прежде чем я изменил некоторые отношения между книгами и пользователями, но я там shoudn't быть провал или?
EDIT:
приложение/просмотров/книги/new.html.erb:
<h1>New book</h1>
<%= render 'form' %>
<%= link_to 'Back', books_path %>
И Model:
class Book < ActiveRecord::Base
attr_accessible :abstract, :status, :titel, :user_tokens, user_ids, :chapters_attributes
has_and_belongs_to_many :users
attr_reader :user_tokens
has_many :chapters, :dependent => :destroy, :autosave => true, :order => 'slot'
validates :title, :presence => true
accepts_nested_attributes_for :chapters, :allow_destroy => true
after_initialize :init
def init
self.status = false if self.status?
end
def user_tokens=(ids)
self.user_ids = ids.split(",")
end
end
end
Что приложение/просмотров/книги/new.html.erb выглядеть как? –
Можете ли вы также показать, как выглядит ваша модель книги? – dasnixon
Интересно, является ли это моделью. Вы всегда можете использовать отладчик и проверять, как он выглядит, пока он не отображает – smile2day