2012-03-27 3 views
0

Хотелось бы помочь с ассоциацией вложенности, у меня есть две ассоциации глубокого уровня, я могу сделать одноуровневое вложение без проблем, но с проблемами с уровнями 2деп.Rails 3 создание вложенных объектов

routes.rb

resources :releases do 
     resources :features 
end 

resources :features do 
     resources :issues 
end 

Просмотреть Создать новый выпуск

<%= link_to "Create New Issue", new_feature_issue_path(@feature) %> 

Controller.

def create 
     @issue = @feature.issues.build(params[:issue]) 
     if @issue.save 
      flash[:notice] = "Issue has been created." 
      redirect_to [@feature, @issue] 
     else 
      flash[:alert] = "Issue has not been created." 
      render :action => "new" 
     end 

    end 

показать вид: тзд

<div id='issue'> 
    <h2><%= @issue.title %></h2> 
    <%= simple_format(@issue.description) %> 
</div> 

Ошибка:

undefined method `issues' for nil:NilClass 
+0

Можете ли вы показать код действия show. – Kashiftufail

+0

Метод show пуст, проблема в том, что объект-объект является дочерним элементом «выпусков», который не был добавлен в URL-адрес перенаправления? – user901790

+0

Как выглядят модели для релизов, функций и проблем? Что содержит новое действие в FeatureController? Попробуйте сначала создать ассоциации, которые вам нужны, в консоли, чтобы проверить правильность настройки моделей? – Pasted

ответ

0

Если показать действие отсутствует, то вы не будете иметь @issue набор переменных. Вызов перенаправления создает совершенно новый запрос, который не будет иметь набор @issue. Вам необходимо заново создать назначение @issue в методе show контроллера.

+0

как получилось, что у меня ничего нет в моих функциях-контроллерах действие? – user901790

+0

это происходит и на моих творениях и шоу. – user901790

+0

ok получил шоу, работающее благодаря вашей помощи, но создание останавливается на линии создания. – user901790