rails3 rout.rb - PullRequest
       9

rails3 rout.rb

0 голосов
/ 29 февраля 2012

Я работал с rails3 , здесь у формы view.html.erb есть одна кнопка входа в систему, поэтому, когда я нажимаю на эту кнопку, никакие маршруты не соответствуют: controller => 'home',:action => 'login'.Но я положил это в rout.rb.Почему это происходит?

view.html.erb

<%= form_tag( { :controller => 'home', :action => 'login' }, { :method
  => 'post'}) do %>
  <%= text_field(:name, :name, :class => "span2",:placeholder => 
  "Username") %>
  <%= password_field_tag(:password, :password,  :class =>"span2") %>
  <%= submit_tag "Login", :class => "btn btn-primary" %>
<% end %>

**routes.rb**

resources :home
resources :home do
  post :login, :on => :member   
end

**homecontroller.rb**

class HomeController < ApplicationController
  def login

  end 
end

Ответы [ 3 ]

0 голосов
/ 29 февраля 2012

Поскольку вы использовали ресурсы для определения своих маршрутов (что рекомендуется), вы должны использовать сгенерированный вспомогательный метод, в данном случае его login_home_path вместо старого синтаксиса { :controller => 'home', :action => 'login' }

0 голосов
/ 29 февраля 2012

Во-первых,

  • Вы объявляете ресурсы: home два раза.

попробуйте этот путь в вашем маршруте. Rb

 resources :home
 match '/login',  to: 'home#login'

и используйтелогин_путь в теге submit.

Я бы предпочел для входа в систему, выхода из системы, создания контроллера Sessions

rails generate controller Sessions --no-test-framework

и для входа в систему создать метод new и для выхода из системы (выхода из системы) create destroy

0 голосов
/ 29 февраля 2012

Вы дважды определили "resources: home", первое объявление бесполезно и заменяет второе.

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