Rails 3 - обработка данных другим способом другого контроллера - PullRequest
0 голосов
/ 09 марта 2012

У меня есть контроллер с именем AdminController , где у меня есть метод create_school_head :

class AdminsController < ApplicationController
  ...
  def create_school_head
    @user = User.new
  end
  ...
end

Также у меня есть представление create_school_head :

<%= form_for @user, :html => {:class => "form-horizontal"} do |f| %>
    <fieldset>
      <div class="control-group">
        <%= f.label :user_login, "Login", :class => "control-label" %>

        <div class="controls">
          <%= f.text_field :user_login %>
        </div>
      </div>

      <div class="control-group">
        <%= f.label :password, "Password", :class => "control-label" %>

        <div class="controls">
          <%= f.text_field :password %>
        </div>
      </div>

    </fieldset>

    <%= f.submit "Create", :class => "btn btn-success" %>
<%  end %>

routes.rb

ElSchool::Application.routes.draw do
  resources :users,    :only => [ :new, :create, :show ]
  resources :sessions, :only => [ :new, :create, :destroy ]

  get "sessions/new"

  match 'pages/wrong_page', :to => 'pages#wrong_page'
  match '/signin',          :to => 'sessions#new'
  match '/signout',         :to => 'sessions#destroy'

  match '/admins/backups', :controller => 'admins',
                           :action     => 'backups'

  match '/admins/users_of_system', :controller => 'admins',
                                   :action     => 'users_of_system'

  match '/admins/create_school_head', :controller => 'admins',
                                      :action => 'create_school_head'

  match '/admins/create_teacher', :controller => 'admins',
                                  :action => 'create_teacher'

  root :to => 'sessions#new'                                                  #Home
end

Прямо сейчас он передает данные для создания метода пользовательского контроллера. Я хотел бы отправить данные из этой формы после отправки кнопок другим методом AdminController , например, в методе process_school_head . Как я могу это сделать?

1 Ответ

1 голос
/ 09 марта 2012

Вы можете использовать опцию: url в вашем методе form_for. Например.,

<%= form_for @user, :url => process_school_head_url, :html => {:class => "form-horizontal"} do |f| %>

Вы должны иметь это в своем маршруте тоже.

match '/admins/process_school_head' => 'admins#process_school_head', :as => :process_school_head

Надеюсь, это поможет.

...