0

我正在制作登录路由并将其添加到 routes.rbresources :sign_in

我做了一个这样的控制器:

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!

但是当我在浏览器中访问 url:http://m.cmply.local:8800/signin时,屏幕完全是白色的,浏览器中没有任何内容。

知道为什么会发生这种情况以及如何解决吗?

谢谢!

4

1 回答 1

4

这里有几个问题:

  1. 您的控制器名称应该是SignInsController,而不是Sign_inController。考虑将您的名称更改为UserSessionsController或类似名称,因为这样可以更好地反映它所代表的资源。您仍然可以为 URL 指定一个备用名称(例如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操作,我不确定你的意思是什么,但它应该是别的东西。

于 2012-04-16T22:03:07.740 回答