Отправка формы маршрутизации другому контроллеру

Как указать Контроллер и Действие в отправке формы? Я пытаюсь использовать Контроллер «Клиентов» для создания Учетной записи и связанного с ней лица («Клиент»).

Вот подходящие модели. Лицо принадлежит либо непосредственно к Учетной записи (которую я называю «Клиент»), либо к местонахождению и Организации в Учетной записи.

class Account < ActiveRecord::Base
    has_many :organizations
    has_many :persons, :as => :linkable

    accepts_nested_attributes_for :organizations
end

class Person < ActiveRecord::Base
    belongs_to :linkable, :polymorphic => true
end

А вот форма для создания «Клиента», которую я пытаюсь создать вместе с остальная часть кода:

<%= form_for @account, :url => { :controller => "clients_controller", 
                                 :action => "create" } do |f| %>

<%= f.fields_for :persons do |builder| %>
    <%= builder.label :first_name %><br />
    <%= builder.text_field :first_name %><br />
    <%= builder.label :last_name %><br />
    <%= builder.text_field :last_name %><br />
    <%= builder.label :email1 %><br />
    <%= builder.text_field :email1 %><br />
    <%= builder.label :home_phone %><br />
    <%= builder.text_field :home_phone %><br />         
  <% end %>

  <%= f.submit "Add client" %>
<% end %>


class ClientsController < ApplicationController

  def new
      @account = Account.new
      @person = @account.persons.build
  end

  def create
      @account = Account.new(params[:account])
      if @account.save
          flash[:success] = "Client added successfully"
          render 'new'
      else
          render 'new'
      end
  end

end

И вот мои маршруты:

ShopManager::Application.routes.draw do

resources :accounts
resources :organizations
resources :locations
resources :people
resources :addresses

get 'clients/new'
post 'clients'

end

При попытке визуализации формы я получаю следующую ошибку:

ActionController::RoutingError in Clients#new

Showing C:/Documents and Settings/Corey Quillen/My  
Documents/rails_projects/shop_manager/app/views/clients/new.html.erb where line #1   
raised:

No route matches {:controller=>"clients_controller", :action=>"create"}
Extracted source (around line #1):

1: <%= form_for @account, :url => { :controller => "clients_controller", :action =>    
   "create" } do |f| %>
2: 
3:   <%= f.fields_for :persons do |builder| %>
4:  <%= builder.label :first_name %><br />
5
задан Corey Quillen 21 August 2011 в 03:25
поделиться