2013-07-13 5 views
0

Вставьте обязательный комментарий« Я новичок Rails »здесь.Rails 4.0 undefined method `[] 'for nil: NilClass

TL; DR: Не удается .create или .new экземпляр модели

Моя основная структура является то, что пользователи должны иметь возможность иметь несколько заметок, которые будут иметь вложения, обрабатываемые на «скрепку» драгоценный камень , Тем не менее, я не могу показаться, чтобы иметь возможность на самом деле создать заметку:

undefined method `[]' for nil:NilClass 

def create 
    @user = User.find(params[:user_id]) 
    @note = @user.notes.create(params[:note].permit(:topic, :class, :content)) 

    redirect_to user_path(@user) 
end 

Это идет от контроллера Примечания и ошибка возникает в строке, где я использую @ user.notes.create. То, что я сварил, так это то, что ноты пустые в начале, и по какой-то причине «создать» вызов терпит неудачу в пустом методе заметок. Интересно, что Note.new также терпит неудачу с той же ошибкой, если я просто пытаюсь создать экземпляр пустой заметки для работы.

Модели для справки:

class Note < ActiveRecord::Base 
    belongs_to :user 

    has_attached_file :content, 
    :storage => 's3', 
    :bucket => ENV['AWS_BUCKET'], 
    :path => "uploads/:attachment/:id/:styles.:extension", 
    :styles => { 
     :medium => "300x300>", 
     :thumb => "100x100>" }, 
    :s3_credentials => { 
     :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
     :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] }, 
    :s3_permissions => 'public-read' 
end 

class User < ActiveRecord::Base 
    has_many :notes 

    validates_presence_of :username 
    validates_presence_of :email 
    validates_presence_of :school 
    validates_format_of :email, :with => /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9] {2,4}\z/i 

end 

Дай мне знать, если больше информации необходимо, первый раз Рельсы пользователь, первый раз Stack Обмен плакат :)

ответ

3

Моя лучшая догадка, что ваш class колонка вызывая серьезные проблемы. Обычно я рассматривал бы class как «зарезервированное слово» в Rails и никогда не использовал его для имени столбца. (Когда я просто попытался создать тестовую модель с столбцом class, я даже не мог получить форму для загрузки без получения ошибки stack level too deep).

+0

У вас есть человек, спасибо! – Longhorns747

Смежные вопросы