Tag: 设计

使用设计API进行自定义身份validation

所以我在这里有一个小巧的组合 Company has many Users User belongs to Company 用户通过设计进行身份validation管理 class User < ActiveRecord::Base belongs_to :company devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable 您可以以用户身份登录并创建所有属于公司的对象,而不是用户,例如: Text 。 ( company.texts ) 现在我使用acts_as_api gem创建了一个简单的API。 对于这个我只需要修改我的文本控制器,fe show动作。 class TextsController @text } end 这在网站上运行得很好。 问题是API。 我不想通过用户模型访问api时进行身份validation。 该公司确实有一个名为:hash的属性,我希望在API中使用Auth。 我不知道如何使用设计(或任何其他方法)来实现这一点。 所以默认情况下,设计希望用户登录,因为我的控制器中有load_and_authorize_resource ,这对于html响应是好的,但对于json响应则没有。 有任何想法吗? 谢谢你读这个。 如果不清楚,请发表评论!

Rails没有更新属性

在我看来,相当标准的更新,但在提交put请求时,属性不会更新。 这是我的相关模型: class Vendor lambda{ |obj| obj.address_changed? } end 我的控制器方法: def edit @vendor = Vendor.find(params[:id]) end def update @vendor = Vendor.find(params[:id]) if @vendor.update_attributes(vendor_params) redirect_to vendors_mgmt_path else render ‘edit’ end end def vendor_params params.permit(:id, :name, :address, :image, :latitude, :longituded ) end 尝试更新后,我在服务器日志中看到了这一点: Started PUT “/vendors/1” for 127.0.0.1 at 2013-10-20 20:44:54 -0700 Processing by VendorsController#update as HTML […]

用户未登录rails时如何获得root视图?

我正在构建一个rails应用程序,我使用Devise进行身份validation。 当用户访问www.mydomain.com而不是www.mydomain.com/users/sign_in ,我想展示产品第一页,这是设计默认值! 我还想在用户登录时显示不同的根视图。这感觉就像一个非常常见的用例,是否有一种简单的方法可以做到这一点? 这是文档中还是有人可以帮助我吗?

如何在Rails 4中为设计注册添加自定义字段?

我正在尝试将一个字段添加到使用设计的注册页面。 我按照Devise文档中的说明进行操作。 新字段是“角色”字段。 我已成功将其迁移到数据库。 我现在正努力使注册有效。 这是新的applicationcontroller: class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception def devise_parameter_sanitizer if resource_class == User User::ParameterSanitizer.new(User, :user, params) else super # Use the default one end end end 这是更改的用户模型: class User::ParameterSanitizer < Devise::ParameterSanitizer […]

使用计算/操作的用户名参数设计登录

我正在尝试使用带有我已计算的用户名的设计创建登录。 作为一个例子,我们假设我们想要命名我们的用户名 – 我希望从登录表单接收用户名,并使用namespaced_username进行实际身份validation。 所以在我的User::SessionsController#create ,我可能有: def create params[:user][:namespaced_username] = “namespace/#{params[:user][:mobile_number]}” super end 尽管设计正在侦听namespaced_username(在初始化程序或模型本身中配置了authentication_keys),并且用户设置为namespace/username ,但我仍然会被告知Invalid Namespaced username or password is not valid 我如何获得设计(特别是看守策略)来阅读新的参数?

rails 4- 401未经授权的error handling

我正在制作一个简单的quora,如问题答案网站登录使用设计。 我试图使用ajax在问题索引本身中呈现表单。 一切似乎工作正常,但没有用户登录时服务器说401未经授权已完成,似乎没有任何事情发生。 控制台响应: Started GET “/questions/new” for 127.0.0.1 at 2017-07-18 18:30:54 +0530 Processing by QuestionsController#new as JS Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms) controller: def new @question = Question.new(:user=>current_user) respond_to do |format| format.js {} end end def new @question = Question.new(:user=>current_user) respond_to do |format| format.js {} end end 我知道这是因为before_action :authenticate_user! 在问题控制器中。 网络响应中的Chrome控制台也说“您需要先登录或注册才能继续”。 此外,我尝试了byebug,但后来才知道流程从未达到新的行动。 […]

第一次尝试时设计validation失败,之后成功

我正在使用Devise(2.1.2)和Rails(3.2.9),我已启用基本身份validation(用于测试)。 我正在使用CURL发布一个JSON POST请求,我看到了奇怪的行为。 第一次发送请求时(服务器重启后)认证失败,但第二次发送完全相同的请求后成功。 在调试时,似乎wins_strategies在第一次尝试时为零,但在第二次尝试时填充了三种策略。 这种行为的原因是什么?

Capybara电子邮件重置会话

我需要在注册Capybara后测试一个特定的智能重定向流程。 假设我的网站上有几个interesting_pages ,我希望在确认注册后将用户重定向到上次访问过的有趣页面 小场景: When I visit the interesting page “42” And I visit a couple uninteresting pages # Note during the visit to other pages, session[:interesting_page] is correctly set to the url of page “42” When I sign up and I confirm via the link in the email # At this point I have […]

注册和登录时,nil的未定义方法`username’:NilClass

每当我尝试登录并注册时,我都会遇到此错误: nil的未定义方法`username’:NilClass 在这两行: 以下是服务器输出的完整错误: User Load (0.3ms) SELECT “users”.* FROM “users” WHERE “users”.”username” = ‘sign_in’ LIMIT 1 Rendered users/show.html.erb within layouts/application (2.1ms) Completed 500 Internal Server Error in 7ms ActionView::Template::Error (undefined method `username’ for nil:NilClass): 1: 2: 3: 4: app/views/users/show.html.erb:1:in `_app_views_users_show_html_erb__1133891108745893964_2164088020′ 这是我的路线: Stynyl::Application.routes.draw do resources :things resources :users, only: [:show] devise_for :users get ‘/about’, to: […]

Rails:如何将params从一种forms传递到另一种forms

这是我的情况:我有表格,网站的任何访客都可以填写。 当然,如果他/她想要提交,他们必须是用户。 因此,当他们点击“提交”时,他们会被带到注册/页面中。 那是因为我需要一个“user_id”才能保存原始表单中的数据。 我想做的是从原始forms(params [:site])中获取params,而不是在创建操作中提交它们,我想等到用户创建了一个帐户。 这将允许我避免在没有用户ID的情况下将站点信息保存到数据库。 我可以在我的网站/创建方法中添加一些代码,就像这样。 def create @site = Site.new(params[:site]) unless current_user? redirect_to new_user_session_path, sites_form_data: params[:site] end if @site.save # … end 但是,一旦我让用户创建帐户,我不确定如何抓住params [:site]? 我正在为这个项目使用Devise,因此可能会对工作产生影响。 我想知道我是否必须覆盖原来的设计控制器,就像这个家伙那样: http : //rorguide.blogspot.com/2011/04/overwrite-devise-registrations.html 我想我也可以将数据存储在cookie中。 但我不知道何时访问该cookie,提取数据并保存到数据库。 用户创建后,肯定。 但它应该是用户模型的回调吗? 它应该去哪里? 我很感激任何建议或意见。