2014-09-30 147 views
1

我最近开始使用Ruby on Rails,并使用Devise gem进行身份验证。当我开始一个新的应用程序来尝试Devise Gem时,工作得很好。但是,我使用的模板在主页上有登录和注册表单。由于Devise创建了两个新视图,我不需要它们,我将不得不将这两个视图代码移到我的home.html.erb文件中。登录并注册主页

我遇到的问题是,在按照these steps后,表单被创建,我填写用户名和密码,但按下提交按钮什么也没有。此外,在提交底部创建了三个链接;登录,注册和忘记密码,将我重定向到Devise创建的页面,这是我试图避免的页面。

我看了很多地方,但没有运气。我有一个星期的RoR经验和两天的​​Devise Gem经验,所以我必须做一些荒谬的事情。任何帮助?

这里是登录表单,我复制到我的home.html.erb文件

<%= form_for("user", :url => user_session_path) do |f| %> 
    <div><%= f.label :email %><br /> 
    <%= f.email_field :email, :autofocus => true %></div> 
    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 
    <% if devise_mapping.rememberable? -%> 
    <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div> 
    <% end -%> 
    <div><%= f.submit "Sign in" %></div> 
    <% end %> 
    <%= render "devise/shared/links" %> 

这里是我的应用助手文件:

module ApplicationHelper 
    def resource_name 
    :user 
    end 

    def resource 
    @resource ||= User.new 
    end 

    def devise_mapping 
    @devise_mapping ||= Devise.mappings[:user] 
    end 

end 

和我的配置/路线.RB文件:

devise_for :users 
    root 'pages#home' 

编辑建议的routes.rb

get "pages/home" 
    devise_for :users 

    devise_scope :users do 
    get "pages/home", :to => "devise/sessions#new" 
    post "https://stackoverflow.com/users/sign_in", :to => "devise/sessions#create", :as => :sign_in 
    end 

还是没有结果。

回答

0

不确定您的路线是如何设置的,但是如果您想显示自定义登录/注册视图并将其引导至适当的位置,则需要确保您更改设计的范围路线并将其引导至您的自定义视图/路线。

例如,如果你想改变你的帖子路线注册(您点击提交后),你可能有这样的事情:

devise_scope :user do 
    get "/home", :to => "devise/sessions#new", :as => :home 
    post "https://stackoverflow.com/users/sign_up", :to => "devise/sessions#create", :as => :sign_up 
end 

我只是做了该名称空间为您的目的,但它可能会有所不同。

这将是值得的看看它详细描述了如何更改默认的登录和注册建立路由here

希望这有助于设计文档。

编辑:

在此寻找进一步的以后,虽然上面的信息对你有所帮助,我认为实际上可能是你的问题是,你缺失:用户对你的form_for的第一线。请尝试这样做:

<%= form_for(:user, :url => user_session_path(:user)) do |f| %> 

这是如何显示在我上面提供的链接上。

+0

非常感谢您的回答。我编辑了我的问题,添加了我的routes.rb文件,然后在home.html.erb文件中编辑了该行。 我试过你的建议,现在主页只显示基本形式的Devise日志。所以基本上,这将登录的URL从/ users/sign_in更改为/ pages/home。我的家庭观点发生了什么? – 2014-09-30 23:24:24

+0

对不起,我以前的评论结果是错误的,我已经按照你的建议更新了我的routes.rb,但结果与以前一样。在我的模板中登录表单,点击提交按钮时没有任何反应。 – 2014-09-30 23:41:59