2012-04-16 54 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动作,我不确定你的意思是什么,但它应该是别的。