Это код, который у меня есть в конце и метод создания в
Контроллер нот
def create
@note = Note.new(params[:note])
@note.user_id = current_user.id
respond_to do |format|
if @note.save
flash[:success] = 'Note was created.'
# @note.note_type is "Temp" at this point
if @note.note_type == "Temp"
p "passed first test"
redirect_to :controller => :categories, :action => :add_category, :note_id => @note.id, :category => 'temp category'
else
format.html { redirect_to(@note) }
format.xml { render :xml => @note, :status => :created, :location => @note }
end
else
format.html { render :action => "new" }
format.xml { render :xml => @note.errors, :status => :unprocessable_entity }
end
end
end
Категории контроллера
def add_category
p "in add_category"
end
Когда он запускается, я получаю следующую ошибку. Строка 80, где начинается трасса, это строка respond_to do |format|
:
NoMethodError in NotesController#create
undefined method `call' for nil:NilClass
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/whiny_nil.rb:52:in `method_missing'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/mime_responds.rb:175:in `respond'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/mime_responds.rb:173:in `each'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/mime_responds.rb:173:in `respond'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/mime_responds.rb:107:in `respond_to'
/Users/benhartney/rails_projects/note_taker/app/controllers/notes_controller.rb:80:in `create'
Я понятия не имею, как начать отладку этой ошибки. Консоль показывает строку вывода «пройден первый тест» из действия create в контроллере Notes, но не строку вывода «in add_category» из действия add_category в контроллере Categories. Я использую Rails 2.3.5. Любая помощь будет принята с благодарностью. Спасибо за чтение.