2012-04-16 55 views
0

我想提出一個登錄路由,並已將此添加到routes.rb中resources :sign_inRuby on Rails的 - 在命名約定整個路線

我犯了這樣的控制器可能出現的錯誤:

class Mobile::Sign_inController < ApplicationController 
    layout "mobile/application" 

    def get 
    respond_to do |format| 
     format.html 
    end 


    end 

    def index 
    respond_to do |format| 
     format.html 
    end 
    end 

end 

,它似乎得到正確路由,但在這裏我位於視圖文件:

/app/views/mobile/sign_in.html.haml 

剛剛有1線用於測試目的:

%strong{:class => "code", :id => "message"} Hello Signin! 

但是當我在瀏覽器中訪問網址:http://m.cmply.local:8800/signin時,屏幕是完全白色的,瀏覽器中沒有渲染任何東西。

任何想法爲什麼發生這種情況,以及如何解決它?

謝謝!

+0

你可以嘗試改變從'手機:: Sign_inController'控制器類名稱爲'移動:: SignInController' – PinnyM 2012-04-16 21:56:42

+0

@PinnyM剛剛試了一下,同樣的結果...我只是看什麼也沒有全白屏幕的瀏覽器渲染。 – GeekedOut 2012-04-16 21:57:45

回答

4

的幾個問題在這裏:

  1. 你的控制器名稱應該是SignInsController,不Sign_inController。考慮將名稱更改爲UserSessionsController或類似名稱,因爲它更好地反映了它所代表的資源。您仍然可以指定該網址的備用名稱(例如sign_in)。

  2. 爲什麼您的控制器命名空間在Mobile下?你給出的路線並不反映這一點,但你似乎沒有提供所有的路線。路線大概應該是下scope

    scope :module => "mobile" do 
        resource :sign_in 
    end 
    
  3. 由於只有「一個」登錄,它應該有它的路線聲明resource :sign_in,甚至可能resource :sign_in, :only => [:new, :create, :destroy],這取決於你想要什麼。這意味着index操作不再存在,您可能希望將其替換爲new操作。

  4. 對於RESTful資源,默認情況下沒有get動作,我不確定你的意思是什麼,但它應該是別的。