Rails 3 создание вложенных объектов - PullRequest
0 голосов
/ 27 марта 2012

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

routes.rb

 resources :releases do 
      resources :features
 end

 resources :features do 
      resources :issues
 end

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

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

контроллер.

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

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

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

0 голосов
/ 27 марта 2012

Сначала вы находите функцию, а затем можете просматривать проблемы с ней ...

внимательно читая по этим ссылкам

http://railscasts.com/episodes/139-nested-resources

http://pandejo.blogspot.com/2009/03/rails-nested-resources-tutorial.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...