2011-02-02 3 views
0

レール3.0.3でdevise 1.1.5に問題があります。 私はアクション "home"を持つコントローラ "site"を持っています。私はそれがあるべきとして「すくいルート」すべてがありませんが、私はsign_upリンクを自分のサイトでクリックしたときに、それがエラーを返した場合:は間違ってサイトコントローラをルーティングします

No route matches {:action=>"home", :controller=>"devise/site"} 

コントローラは、「サイト」でなければなりません。これは正しいことを、 "devise/site"ではありません。 これは私のroutes.rbをしている:

resources :articles 

get "site/home" 

get "site/about" 

devise_for :users 

をしかし、私は「すくいルート」を見ると、すべてが正常に見えます。何か案は?ありがとう!

articles GET /articles(.:format)   {:action=>"index", :controller=>"articles"} 
     POST /articles(.:format)   {:action=>"create", :controller=>"articles"} 
new_article GET /articles/new(.:format)  {:action=>"new", :controller=>"articles"} 
edit_article GET /articles/:id/edit(.:format) {:action=>"edit", :controller=>"articles"} 
article GET /articles/:id(.:format)  {:action=>"show", :controller=>"articles"} 
     PUT /articles/:id(.:format)  {:action=>"update", :controller=>"articles"} 
     DELETE /articles/:id(.:format)  {:action=>"destroy", :controller=>"articles"} 
site_home GET /site/home(.:format)   {:action=>"home", :controller=>"site"} 
site_about GET /site/about(.:format)   {:action=>"about", :controller=>"site"} 
new_user_session GET /users/sign_in(.:format)  {:action=>"new", :controller=>"devise/sessions"} 
user_session POST /users/sign_in(.:format)  {:action=>"create", :controller=>"devise/sessions"} 
destroy_user_session GET /users/sign_out(.:format)  {:action=>"destroy", :controller=>"devise/sessions"} 
user_password POST /users/password(.:format)  {:action=>"create", :controller=>"devise/passwords"} 
new_user_password GET /users/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"} 
edit_user_password GET /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"} 
        PUT /users/password(.:format)  {:action=>"update", :controller=>"devise/passwords"} 
user_registration POST /users(.:format)    {:action=>"create", :controller=>"devise/registrations"} 
new_user_registration GET /users/sign_up(.:format)  {:action=>"new", :controller=>"devise/registrations"} 
edit_user_registration GET /users/edit(.:format)   {:action=>"edit", :controller=>"devise/registrations"} 
         PUT /users(.:format)    {:action=>"update", :controller=>"devise/registrations"} 
         DELETE /users(.:format)    {:action=>"destroy", :controller=>"devise/registrations"} 
root  /(.:format)     {:action=>"home", :controller=>"site"} 

答えて

0

登録リンクのコードは何ですか。

(私は「については、」現在のエラーを引き起こしている可能性があります説明されている方法「ホーム」と思う)にあなたのroutes.rbをを変更してみてください:

devise_for :users 
resources :sites do 
    get :home, :on => :member 
    get :about, :on => :member 
end 

resources :articles 

また、そのようにするとき、あなたのルートパスを設定することを忘れないでくださいユーザーはログインして正しい表示に導かれます。

+0

これは工夫固有のコードです。「

<% if user_signed_in? %> Signed in as <%= current_user.email %>. Not you? <%= link_to "Sign out", destroy_user_session_path %> <% else %> <%= link_to "Sign up", new_user_registration_path %> <% end %>
」 – John

+0

申し訳ありません:これは工夫固有のコードです: ''

<% if user_signed_in? %> Signed in as <%= current_user.email %>. Not you? <%= link_to "Sign out", destroy_user_session_path %> <% else %> <%= link_to "Sign up", new_user_registration_path %> <% end %>
John

+0

preious答えへの変更を参照してください。 – user596916

関連する問題