Rails вложенная маршрутизация - PullRequest
0 голосов
/ 25 марта 2012

У меня три модели с вложенным ресурсом.

class User < ActiveRecord::Base
  has_many :basiccases
end

class Basiccase < ActiveRecord::Base
  belongs_to :user
  has_one :form3_c      
end

class Form3C < ActiveRecord::Base
 belongs_to :basiccases
end


resources :basiccases  do
  resources :form3_cs
  end

Я пытаюсь отправить базовый регистр в новую форму, используя

<%= link_to "ADD Form3C", new_basiccase_form3_c_path(@basiccase)%>

и получить новое значение вформа, использующая

<%= form_for([@form3c, @basiccase]) do |f| %> 

в новом представлении в методе form_for.Код моего контроллера

class Form3CsController <  ApplicationController
  #before_filter :authenticate

  def new
    @title = "New Form 3C"
    @basiccase = Basiccase.find_by_id(params[:id])

    @form3c = Form3C.new if signed_in?
  end

  def create       
       @form3c = @basiccase.build_form3_c(params[:form3c])
          if @form3c.save
            flash[:success] = "Form created!"
            redirect_to current_user
          else
            flash[:warning] ="Failed to create a Form"
            render 'users/show'
          end
  end
end

Моя главная цель - получить basiccase_id в методе создания контроллера form3_c и присвоить атрибут внешнего ключа.Мой подход правильный?
Я получаю сообщение об ошибке

undefined method `model_name' for NilClass:Class
Extracted source (around line #2):

1: <h1>Add Form 3C </h1>
2: <%= form_for(@basiccase) do |f| %>
3:     <%= render 'shared/error_messages', :object => f.object %>
4: 
5:     <div class="field">

1 Ответ

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

Попробуйте

<%= form_for([@basiccase, @form3c]) do |f| %> 
...