Публикация с вложенными ресурсами

#ruby-on-rails-3

#ruby-on-rails-3

Вопрос:

Я вложил свои ресурсы (см. Ниже), и когда я пытаюсь создать новую сущность, я получаю следующую ошибку. Кто-нибудь знает, почему я получаю эту ошибку и как ее решить?

неопределенный метод `applications’ для nil:NilClass

 resources careers do
    resources applications
end
  

В контроллере «Приложения» у меня есть:

 before_filter [[:authenticate, :except => :new], :load_career]

def create
      # The following line is where the error originates
    @application = @career.applications.new(params[:application])

    respond_to do |format|
        ...
    end
end

private
def load_career
    @career = Career.find(params[:career_id])
end
  

Модели Career и Application имеют has_many :applications и belongs_to :career соответственно.

И в миграции ‘*_create_applications’ есть career_id поле.

Ответ №1:

Я никогда не видел, чтобы before_filters определялись таким образом. Я только что попробовал это в Rails 3, и, похоже, это ничего не дает. Я бы дал каждому обратному вызову свой собственный вызов before_filter:

 before_filter :authenticate, :except => :new
before_filter :load_career