Tag: 设计

没有这样的文件加载 – bcrypt_ext(通过设计)

我在rails 3上使用devise(当前gem)中的数据库身份validation,并且在尝试使用用户名/密码登录时出现以下错误。 no such file to load — bcrypt_ext This error occurred while loading the following files: bcrypt bcrypt_ext 我之前已经“成功安装了bcrypt-ruby-2.1.2”gem。 有任何想法吗? 我也尝试给bundle服务器git repo地址并获取master,但它没有解决问题。

使用Grape和Devise进行用户身份validation

我很难理解并在API中正确实现用户身份validation 。 换句话说,我很难理解Grape API与Backbone.js,AngularJS或Ember.js等前端框架的集成。 我试图调整所有不同的方法,并阅读了很多相关内容,但谷歌给我带来了真正糟糕的资源,在我看来,就像在这个主题上没有真正好的文章 – 使用Devise和前端的Rails和用户身份validation框架 。 我将描述我目前的支点,我希望你能就我的实施提供一些反馈,并指出我正确的方向。 目前的实施 我有跟随Gemfile的后端Rails REST API (我会故意缩短所有文件代码) gem ‘rails’, ‘4.1.6’ gem ‘mongoid’, ‘~> 4.0.0’ gem ‘devise’ gem ‘grape’ gem ‘rack-cors’, :require => ‘rack/cors’ 我当前的实现只有具有以下路由的API( routes.rb ): api_base /api API::Base GET /:version/posts(.:format) GET /:version/posts/:id(.:format) POST /:version/posts(.:format) DELETE /:version/posts/:id(.:format) POST /:version/users/authenticate(.:format) POST /:version/users/register(.:format) DELETE /:version/users/logout(.:format) 我创建了以下模型user.rb class User include Mongoid::Document […]

用rails 4设计认证的根路由不起作用

我想做什么 我想将用户发送到注册#new页面,如果他们没有登录。 输入登录信息并单击“提交”后,我希望您将其发送到注册#show页面。 怎么了 当您未登录时,它会将您发送到注册#new页面(到目前为止正确)。 但是当您提交登录表单时,它会通过重定向循环发送错误。 服务器的输出就是这个块一遍又一遍地重复: Started GET “/” for 127.0.0.1 at 2013-09-25 02:31:59 -0400 Processing by RegistrationsController#new as HTML User Load (0.7ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = 8 ORDER BY “users”.”id” ASC LIMIT 1 Redirected to http://lvh.me:3000/ Filter chain halted as :require_no_authentication rendered or redirected Completed 302 Found in 2ms (ActiveRecord: […]

设计路由:有没有办法从Rails.application.routes中删除路由?

devise_for创建包含DELETE路由的路由,我们要删除它, devise_for不支持:except或:only选项。 如何从Rails.application.routes删除路由? 在draw块中,还是之后? 以下是错误的详细信息,这是我们需要删除路由的原因。 我们向自定义UJS控制器操作发出DELETE请求 在控制器操作中,我们删除了我们想要的内容,然后执行302重定向。 这是一个坏主意,我们已经通过返回一些JSON来纠正它。 一些客户端在收到302后会向重定向发出一个新的DELETE请求,该请求路由到Devise删除路由! 从而无意中删除了这个人! 让人惊讶。 我们假设这将是一个GET。 不好的假设。 这个错误已经修复,但我想删除该路由。 以下是我最后所做的事情,这是由何塞·瓦利姆引用的赏金获胜者所建议的: 在config/routes.rb ,我在devise_for调用上面添加了这个,它设置了其余的’people’路由: delete ‘/person’, :to => ‘people#destroy’ 然后在我现有的people_controller.rb ,我添加了一个no-op方法: def destroy render :nothing => true end 我仍然有点烦恼,没有一种简单的方法可以从RouteSet中删除路由。 此外,设备控制器仍然存在delete路由,但它不会被调用,因为rails在config/routes.rb查找第一个匹配并返回它。

如何在字段旁边显示错误消息

我有一个带有输入字段/标签等的表单。如何在字段旁边显示错误消息? 而不是在顶部聚集在一起? 我正在使用装备,导轨3 我把它放在表格的顶部: = form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| – if resource.errors.any? #errorExplanation %h2 = pluralize(resource.errors.count, “error”) prevented this user from being saved: %ul – resource.errors.full_messages.each do |msg| %li = msg

如何使用Rails,Devise和Backbone.js进行令牌认证?

我正在尝试使用PhoneGap,jQuery Mobile和Backbone.js在客户端构建移动应用程序 – 使用运行服务器端的Rails 3 JSON API。 我知道如何在经过身份validation后从服务器获取令牌,但我不知道如何将“token_auth”键/值附加到Backbone.js将对我的服务器进行的所有AJAX请求。 这是我目前的流程: 用户在某些表单字段中键入并点击“登录” Backbone使用电子邮件和密码信息创建一个新的Player对象。 我运行一个Player.authenticate,将令牌设置为AUTHENTICATION_TOKEN 此后的所有请求都应附加“auth_token =”+ AUTHENTICATION_TOKEN 我看过http://documentcloud.github.com/backbone/#Sync可能会覆盖AJAX调用 – 但这对于这个简单的任务来说似乎非常极端。 有没有人有运行Devise token_authentication和Backbone.js的经验?

设计和iPhone应用程序之间的HTTP身份validation

我是ruby on rails的新手,但我想将我的SQlite数据库中的数据从我的iphone应用程序发送到rails web应用程序。 就像“同步”服务一样。 我正在使用设计进行Web应用程序的身份validation。 我启用了基本的HTTP身份validation,我可以卷入xml或json数据的网站。 当我将post标题设置为JSON并使用用户名和密码时,我也可以将数据上传到网站。 这就是我被困住的地方。 1)如何在第一次登录后让用户登录? 每次向网站发送数据时都使用http身份validation吗? 我已阅读有关令牌身份validation但我不确定如何使用它。 2)我可以使用正确的用户名和密码将JSON数据发布到http:// localhost:3000 / example之类的内容。 但是,如果用户名和passowrd不正确,它将返回HTML内容。 我是否必须写一些返回有关登录成功/ fialure的json数据的内容? 3)在我的iPhone应用程序和我的网络应用程序之间进行通信。 我是否正确在Web应用程序端编写RESTful API? 我需要使用有效资源吗? 我真的很难全面了解这一切是如何运作的。 谢谢!

用户的不同’/’根路径,具体取决于它们是否经过身份validation(使用设计)

我正在编写一个rails应用程序,其中我有一个编辑器和一个出版物模型。 我正在使用设计编辑器身份validation,并且由于编辑器不能作为访客执行任何操作,我编写了一个用于登录页面的自定义布局,我希望访客用户只能看到登录页面。 现在我正在尝试在我的应用程序中实现以下行为但未成功: require ‘spec_helper’ require ‘capybara/rails’ describe “Authentication” do describe “when logged in” do before(:each) do @editor = Factory(:editor, :password => ‘secret’) visit ‘/’ fill_in ‘Login’, :with => @editor.login fill_in ‘Password’, :with => ‘secret’ click_button ‘Sign in’ page.should have_content(‘Signed in successfully.’) end it “getting / should render publication page with no redirection” do visit […]

使用像facebook这样的omniauth提供程序时,Devise不会正确地重定向到存储位置

我在我的应用程序中有一些受保护的操作,需要用户身份validation。 因为我正在使用devise,所以我使用authenticate_user! 在过滤之前保护它们。 每当用户点击受保护的页面时,设计要求用户登录,然后重定向回受保护的页面。 这部分很完美。 问题是,当用户尝试通过我的应用程序登录Facebook时,设计在登录后不会将用户重定向到受保护的页面。 它总是将用户返回到根URL。 使用标准身份validation,这不是问题 我怀疑它与passthru方法有关 – 设计 – omniauth集成需要。 任何帮助将不胜感激 这是我的omniauth回调的代码片段: def facebook # You need to implement the method below in your model omniauth = request.env[“omniauth.auth”] @user = User.find_for_facebook_oauth(omniauth, current_user) if @user.persisted? flash[:notice] = I18n.t “devise.omniauth_callbacks.success”, :kind => “Facebook” sign_in_and_redirect @user, :event => :authentication else session[“devise.facebook_data”] = env[“omniauth.auth”] redirect_to new_user_registration_url […]

设计用户sign_in为CSRF令牌真实性令牌提供身份validation错误

我正在使用带有rails devise (最新版本 – 3.2.0)(最新版本 – 4.0.1) 我正在进行简单的身份validation(没有ajax或api)并且获得CSRF真实性令牌的错误。 检查下面的POST请求 started POST “/users/sign_in” for 127.0.0.1 at 2013-11-08 19:48:49 +0530 Processing by Devise::SessionsController#create as HTML Parameters: {“utf8″=>”✓”, “authenticity_token”=>”SJnGhXXUXjncnPhCdg3muV2GYCA8CX2LVFV78pqddD4=”, “user”=> {“email”=>”a@a.com”, “password”=>”[FILTERED]”, “remember_me”=>”0”}, “commit”=>”Sign in”} Can’t verify CSRF token authenticity User Load (0.4ms) SELECT “users”.* FROM “users” WHERE “users”.”email” = ‘a@a.com’ LIMIT 1 (0.1ms) begin transaction SQL (0.4ms) […]