14

ランディングページのあるレールアプリを開発しています。ランディング ページで、ユーザーはアプリにサインアップできます。ログインには、追加のコントローラーを備えた追加のビューがあります。

次のようになります。

views/landinpage/index.html --> sign up form
views/login/index.html --> login form

しかし、私は1つのコントローラーだけを持ちたいです

controllers/login_controller --> create new user from sign up form & check login data

そのため、ランディングページ ビューと login_controller の間の接続を取得する必要があります。

これは私の試みです:

<%= form_for @login, :url => { :controller => "login_controller", :action => "create" }, :html => {:method => :post} do |f| %>

しかし、それはルートエラーをスローします:

No route matches {:controller=>"login_controller", :action=>"create"}

すでにroutes.rbでログインリソースを定義していますが、問題は別の場所にあるようです?

resources :logins

何か案は?

4

4 に答える 4

18

これを試して

class LoginsController < ApplicationController
   def new
     ...
   end

   def create
     ...
   end
  ...
 end

route.rb ファイルに書き込みます

  match '/login/create' => 'logins#create', :as => :create_login
  or
  resources :logins

コンソールで-書き込み-rake routesルートを確認します

それから

<%= form_for @login, :url => create_login_path(@login) do |f| %>
于 2012-10-23T10:53:37.437 に答える
12

コードは次のようになります。

<%= form_for @login, :url => { :controller => "login", :action => "create" }, :html => {:method => :post} do |f| %>

現在これをテストすることはできませんが、_controller部分は必要ないと思います。

アップデート:

私がよく使用しているもう1つのことは、機能します。

<%= form_for @login, :url => create_login_path(@login), :html => {:method => :post} do |f| %>

アプリケーションのルートに一致するようにパーツを修正する必要があるかもしれませんがcreate_login_path、それが私が通常これらのビューを定義する方法です。

于 2012-10-23T10:44:45.023 に答える
0

html フォーム アクション部分が表示されます。

あなたconfig/routesが持っている

resources :posts

namespace :admin do
  resources :posts
end
于 2012-10-31T09:37:16.930 に答える