Tag: 设计

使用Devise在具有子域的多租户站点上自动登录用户

在我的应用程序中,客户在mysite.com上注册。 注册完成后,会为他们提供一个站点,例如customer.mysite.com。 我正在使用Devise,并希望立即将客户登录到他们的网站。 我正在使用多租户,如RailsCast中所述。 我不太清楚如何解决这个问题。 将sign_in添加到after_sign_up_path_for def的标准解决方案无效。 我假设它试图将客户登录到mysite.com,而不是customer.mysite.com。 我包括我的after_sign_up_path_for def所以你可以看到我正在尝试的东西没有成功。 我的Devise实现中的资源是User,用户拥有Site。 RegistrationsController: def after_sign_up_path_for(resource) # Site.current_id = resource.site.id sign_in resource, bypass: true “http://#{resource.site.host}.#{ENV[‘BASE_HOST’]}/sites/#{resource.site.id}/edit” # edit_site_url end 任何帮助表示赞赏。

在另一页上设计登录表单

我想在我的主页上添加一个设计登录表单(模型称为home) 我已经找到了这个,但坚持放置某些位并工作! Show a devise log in form in another page Sign in session_path(resource_name) do |f| -%> “shared/devise_links” %> 和(不知道放在哪里) module ContentHelper def resource_name :user end def resource @resource ||= User.new end def devise_mapping @devise_mapping ||= Devise.mappings[:user] end end 我的设计是’成员’,所以任何帮助都会很棒:)干杯

在设计中注册后不允许登录

我正在使用设计进行身份validation,设计在注册后自动登录,我需要注册但不能登录。有类似的问题链接,但它没有帮助我

邪恶的gem与茧gem和设计用户模型

所以我有一个User devise生成的User模型,我正在使用Wicked gem为我提供多forms选项,从用户那里获取更多数据并将其存储在用户模型中。 一切都工作正常,但知道我正在尝试添加另一个用户有很多学位的模型。 我正在使用cocoon gem让我增加额外的degrees 。 我可以进入多forms页面并输入学位信息,甚至可以向用户添加更多学位,但是当我提交表单时,我收到错误; param is missing or the value is empty: user 其他所有其他内容实际上都得到了保存,我可以查看用户和输入的其余字段但不是度数。 用户模型: has_many :degrees accepts_nested_attributes_for :degrees, reject_if: :all_blank, allow_destroy: true 学位模型: belongs_to :user user_steps_controller(这是邪恶的gem控制器): class UserStepsController < ApplicationController include Wicked::Wizard steps :personal, :avatar_and_about_yourself, :social, :education def show @user = current_user render_wizard end def update @user = current_user @user.update_attributes(user_params) […]

Rails4和Devise(NoMethod错误)

我正在学习如何使用rails gem在ruby上构建Web应用程序。 遵循本教程: http : //12devs.co.uk/articles/writing-a-web-application-with-ruby-on-rails/ 在我开始为用户身份validationfunction安装Devise gem之前,一切都很好。 在执行rails generate devise:install之后我收到错误 错误报告是这个史诗(看起来我以某种方式搞砸了一些依赖): sergey@sergey-VirtualBox:~/Bookmarks$ rails generate devise:install /home/sergey/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.0/lib/active_record/dynamic_matchers.rb:26:in `method_missing’: undefined method `devise’ for Install (call ‘Install.connection’ to establish a connection):Class (NoMethodError) from /home/sergey/Bookmarks/app/models/install.rb:4:in `’ from /home/sergey/Bookmarks/app/models/install.rb:1:in `’ from /home/sergey/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:443:in `load’ from /home/sergey/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:443:in `block in load_file’ from /home/sergey/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:633:in `new_constants_in’ from /home/sergey/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:442:in `load_file’ from /home/sergey/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:342:in `require_or_load’ from /home/sergey/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:480:in […]

ruby on rails 4 – devise – send_reset_password_instructions – 重置密码 – 重置密码令牌无效

我在rails版本’4.2.4’上使用ruby并设计4.0.0 gem ‘rails’, ‘4.2.4’ devise (4.0.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0, 1.2.3) 接管一些由某人制作的代码,他们已经实现了重置密码,但没有完成工作。 我想解决它。 从控制台,我试图使用这个: > u = User.first > u.send_reset_password_instructions 这是控制台输出: [15] pry(main)> u.send_reset_password_instructions Devise::Mailer#reset_password_instructions: processed outbound mail in 37.9ms Sent mail to testme@gmail.com (6024.6ms) Date: Sun, 20 May 2018 12:13:23 +0800 From: “My Support” Reply-To: “Harta.Org Support” To: testme@gmail.com […]

在哪里可以阅读完整的手册来配置SMTP for Rails?

我在Rails新手,我有一些问题。 我使用Devise插件设置了简单的应用程序,通过Capistrano将其部署在生产服务器(Linode上的Ubuntu,nginx +乘客)上。 现在尝试发送电子邮件(密码恢复,电子邮件确认等来自Devise)。 但它确实有效。 我在/enviroments/production.rb中有这些内容 config.action_mailer.default_url_options = { :host => “myhostname.com” } config.action_mailer.delivery_method = :smtp config.action_mailer.raise_delivery_errors = true 当我尝试从我的应用程序发送电子邮件时,我得到500错误“我们很抱歉,但出了点问题。”(乘客)。 在log / production.log中 Net::SMTPServerBusy (451 4.3.0 Temporary system failure. Please try again later.) 我使用exim4作为邮件服务器。 我也尝试安装sendmail并进行更改 config.action_mailer.delivery_method = :sendmail 电子邮件开始发送但应用程序工作很慢。 所以,我的问题是:我需要对我的问题做些什么以及在哪里可以阅读完整的手册或文档来配置exim4以使用rails应用程序? 谢谢。

使用qunit测试emberjs / rails / devise应用程序时“无法validationCSRF令牌真实性”

我有一个使用devise进行用户身份validation的emberjs / rails应用程序。 我正在使用qunit构建集成测试。 我在运行测试之前手动登录应用程序。 可以在测试期间处理GET请求,但POST请求失败。 特别是,在发出POST请求时,我从设计中得到“无法validationCSRF令牌真实性”错误。 当我重新加载测试时,我退出了应用程序。 我怎么得到qunit与设计玩得很好?

登录原始任务后重定向

所以我想向用户发送电子邮件,其中包含一些链接,您可以单击这些链接来执行操作,但如果用户尚未登录,我希望能够让用户登录,然后将其重定向回他试图去做什么。 我在application_controller.rb中有这些方法 这被称为URL链接到的地方的before_filter,捕获用户不应该在他试图去的任何地方并存储意图 def user_in_beta unless user_signed_in? && current_user.beta if user_signed_in? redirect_to :home_betawait else session[:original_uri] = request.request_uri redirect_to new_user_session_path end end end 并且在他登入并将他放回他所属的地方之后,这应该抓住他。 def after_sign_in_path_for(resource_or_scope) if current_user.beta if session[:original_uri].nil? :home_index else session[:original_uri] end else :home_betawait end end 但事实并非如此。 相反,我得到一个非常讨厌的“不能重定向到零!” 如果我将它读入一个局部变量并存储它,那么更多的事情就会破裂。 我感到非常困惑,这是一件非常普遍的事情。

找不到具有’id’= sign_out的用户

我正在使用rails中的设计,我现在无法注销我的用户。 当我使用users / log_out页面时,它会出现以下错误: ActiveRecord::RecordNotFound in UsersController#show Couldn’t find User with ‘id’=sign_out 无论如何,这是我的用户控制器: class UsersController < ApplicationController def new @user = User.new end def create @user = User.new(user_params) if @user.save redirect_to users_path else render 'new' end end def index @users=User.all end def edit @user = User.find(params[:id]) end def destroy @user = User.find(params[:id]) @user.destroy redirect_to users_path […]