小编Luc*_*cas的帖子

Rails&Devise:覆盖SessionsController

我正在尝试在我的主页上设置登录表单.我设法通过遵循Wiki来做到这一点

但是,如果登录信息不正确,/devise/session/new.html.erb则会进行渲染.我不希望这样.我希望我的用户被重定向到root_url 带有 flash消息中的WITH错误.

我能够覆盖registrations_controller.rb另一个功能,但覆盖sessions_controller.rb给我带来了很多麻烦.

我想改变做我想做的事情是什么?after_sign_in_path如果登录正确,我仍然希望将用户重定向到.原始控制器在这里

到目前为止,我知道我必须在我的身上做到这一点 routes.rb

devise_for :users, :controllers => { :registrations => "registrations", :sessions => "sessions" }

我也成立了 controller/sessions_controller.rb

class SessionsController < Devise::SessionsController

  # GET /resource/sign_in
  def new
    resource = build_resource
    clean_up_passwords(resource)
    respond_with_navigational(resource, stub_options(resource)){ render_with_scope :new }
  end

end
Run Code Online (Sandbox Code Playgroud)

我觉得我必须改变render_with_scope :new但是......怎么样?使用该版本,我收到错误undefined method 'users_url' for #<SessionsController:0x5072c88>

好吧,我会等你的宝贵帮助

PS:这篇文章帮助我处理了订阅错误.也许它有助于登录错误?

====编辑====

根据第一个答案建议,我还添加到initializers/devise.rb:

config.warden do |manager|
  manager.failure_app = CustomFailure
 end …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise ruby-on-rails-3

14
推荐指数
1
解决办法
2万
查看次数

编辑/更新用户时重定向(有错误)

我想在我的项目中更新/编辑我自己的表单中的设计用户,但问题是我无法在"request.referer"上重定向更新.

我已经读过了,但它对我不起作用:https://github.com/plataformatec/devise/wiki/How-To:-Customize-the-redirect-after-a-user-edits-their-profile ......以及其他维基页面.

好的,所以我的代码是:

#/views/backend/perso.html.erb
<%= form_for(@user, :url => registration_path(@user), :html => { :method => :put }) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(form.errors.count, "error") %> prohibited this data from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
# Other fields ...
  <div class="field">
    <%= f.label :email %><br …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise ruby-on-rails-3

10
推荐指数
1
解决办法
5825
查看次数

设计 - 自动删除在定义的时间段后尚未确认的帐户

一切都在标题中,我希望能够删除一段时间后尚未确认的帐户.

我正在使用:

  • Rails 3.0.5
  • 设计1.3.4

我的Devise User模型具有以下属性:

devise :database_authenticatable, :confirmable, :registerable, :recoverable, :rememberable, :trackable, :validatable
Run Code Online (Sandbox Code Playgroud)

和我的 db/schema.rb

create_table "users", :force => true do |t|
    t.string    "email",                                 :default => "", :null => false
    t.string    "encrypted_password",     :limit => 128, :default => "", :null => false
    t.string    "reset_password_token"
    t.timestamp "reset_password_sent_at"
    t.timestamp "remember_created_at"
    t.integer   "sign_in_count",                         :default => 0
    t.timestamp "current_sign_in_at"
    t.timestamp "last_sign_in_at"
    t.string    "current_sign_in_ip"
    t.string    "last_sign_in_ip"
    t.timestamp "created_at"
    t.timestamp "updated_at"
    t.string    "confirmation_token"
    t.timestamp "confirmed_at"
    t.timestamp "confirmation_sent_at"
  end
Run Code Online (Sandbox Code Playgroud)

小小的奖励 - 在我的User …

ruby-on-rails devise ruby-on-rails-3

4
推荐指数
1
解决办法
1564
查看次数

Rails:重定向到原始404页面时错误丢失模板

这是我的问题.

在我的控制器中,我检查URL中给出的参数是否是有效用户,如果不是我希望将访问者重定向到"经典"404页面.这是我的控制器:

def home
  @user = User.find_by_domain(params[:domain])

  if !@user.nil?
    respond_to do |format|
      format.html # home.html.erb
    end
    else
      render(:file => "#{RAILS_ROOT}/public/404.html", :status => 404, :layout => false)
    end
end
Run Code Online (Sandbox Code Playgroud)

然而,当@user就是nil我得到以下错误:

Template is missing Missing template D:/Project/public/404.html with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths

我没有修改Rails生成的404页面:

<!DOCTYPE html>
<html>
<head>
  <title>The page you were looking for doesn't exist (404)</title>
  <style type="text/css">
    body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

1
推荐指数
1
解决办法
5089
查看次数

标签 统计

ruby-on-rails ×4

ruby-on-rails-3 ×4

devise ×3