Подача формы в рельсы 3 - PullRequest
       2

Подача формы в рельсы 3

1 голос
/ 07 января 2011

Я решил запустить небольшой проект в rails 3, и я немного застрял в форме ... Где я могу указать, что действие f.submit должно перейти к специальному контроллеру / действию?

Код в форме:

<%= form_for @user, :url => { :action => "login" } do |f| %>
<div class="field">
<%= f.text_field :email %><br />
<%= f.text_field :password %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>

Пользователь определен как @user = User.new в методе «index» для home_controller.

, но у меня есть ошибка:

No route matches {:controller=>"home", :action=>"login"}

как только я запускаю http://0.0.0.0:3000

Мне очень жаль этого вопроса для новичка, но я не могу найти детали маршрутизации (я немного поработал с рельсами пару лет назад, но...)

Спасибо, Люк

Ответы [ 2 ]

2 голосов
/ 07 января 2011

Вам не нужно указывать какие-либо действия для f.sumbit.Прежде всего, вам нужно убедиться, что вы добавили

 resources :users 

(например)

в ваши маршруты. Rb

, тогда, если вы хотите создать пользователя

поместите

  def new

     @user = User.new

 end

в свой users_controller, чтобы у вас была страница для создания нового пользователя, или вы можете поместить @ user = User.new где угодно, не забудьте правильно указать маршрут

затем

      def create


    @user = User.new(params[:id])

    if @user.save
        sign_in @user

        redirect_to @user
    else

        render 'new'
    end

 end

- это часть, которая выполняет реальную работу после того, как вы нажали на submit

фактическая часть, которая связывает вашу форму со всем остальным, - это строка

<% form_for @user do |f| %>

вы можете изменить пользователя на другой объект, а также отредактировать форму с помощью действия обновления в контроллере.

Надеюсь, у вас есть идея

1 голос
/ 07 января 2011

Когда вы используете объекты REST, простого:

form_for @article

достаточно, чтобы форма нашла правильный путь.

В противном случае вы можете использовать помощников следующим образом:

form_tag(:controller => "people", :action => "search", :method => "get", :class => "nifty_form")

Подробнее здесь: http://edgeguides.rubyonrails.org/form_helpers.html

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