rails 3 неинициализированная константа NameError при уничтожении объекта - PullRequest
0 голосов
/ 01 декабря 2010

В моем приложении на Rails 3 появляется ошибка, из-за которой я не могу точно определить источник ... Когда я пытаюсь уничтожить объект, я получаю следующее:

NameError (uninitialized constant Outcome::OutcomeAnalyAsis): app/controllers/outcomes_controller.rb:141:in `destroy'
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (15.6ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (15.6ms)

Этофункция уничтожения у меня есть.Ошибка возникает из-за строки, которая говорит: @outcome.destroy.

 def destroy
    @outcome = Outcome.find(params[:id])

    @outcome_tps = OutcomeTimepoint.where(:outcome_id => @outcome.id).all
    @outcome_subs = OutcomeSubgroup.where(:outcome_id => @outcome.id).all
    @outcome_columns = OutcomeColumn.where(:outcome_id => @outcome.id).all
    @outcome_column_vals = OutcomeColumnValue.where(:outcome_id => @outcome.id).all
    @outcome_results = OutcomeResult.where(:outcome_id => @outcome.id).all

    @outcome_tps.each {|i| i.destroy}
    @outcome_subs.each {|i| i.destroy}
    @outcome_columns.each {|i| i.destroy}
    @outcome_column_vals.each {|i| i.destroy}
    @outcome_results.each {|i| i.destroy}
    @outcome.destroy  #error happens on this line

    respond_to do |format|
        @outcomes = Outcome.find(:all, :conditions => {:study_id => session[:study_id]})
        @study_arms = Arm.find(:all, :conditions => {:study_id => session[:study_id]})    
        format.js {
          render :update do |page|
                page.replace_html 'outcomes_table', :partial => 'outcomes/table'
          end
        }
    end
  end

Существует класс OutcomeAnalysis, но я не могу понять, где он связан с Outcome.Я выполнил поиск по всем файлам в каталоге моего проекта на предмет «OutcomeAnalyAsis» и «analyasis» как с учетом регистра, так и без учета регистра.Единственное место, где это происходит, находится в файле журнала от этих ошибок.

Я знаю, что это, вероятно, где-то в моем коде проекта, но есть ли у кого-нибудь какие-либо предложения о том, что может быть причиной этого, или где я должен искать?Я пытаюсь уничтожить выбранный объект @outcome.Идентификатор объекта @outcome устанавливается правильно с помощью params [: id].

Я могу опубликовать больше сегментов кода, если это поможет.Заранее спасибо!

1 Ответ

2 голосов
/ 01 декабря 2010

Чувак, глядя на твой код, кажется, что самое первое, что тебе нужно использовать, это

has_many :outcome_tps, :dependent => :destroy
has_many :outcome_subs, :dependent => :destroy

и т. Д. ... Как только ты это сделаешь, дай нам знать, в чем проблема.

это удалит эти строки кода

@outcome_tps = OutcomeTimepoint.where(:outcome_id => @outcome.id).all
@outcome_subs = OutcomeSubgroup.where(:outcome_id => @outcome.id).all
@outcome_columns = OutcomeColumn.where(:outcome_id => @outcome.id).all
@outcome_column_vals = OutcomeColumnValue.where(:outcome_id => @outcome.id).all
@outcome_results = OutcomeResult.where(:outcome_id => @outcome.id).all

@outcome_tps.each {|i| i.destroy}
@outcome_subs.each {|i| i.destroy}
@outcome_columns.each {|i| i.destroy}
@outcome_column_vals.each {|i| i.destroy}
@outcome_results.each {|i| i.destroy}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...