Tag: 设计

如何跟踪一个用户在线的时间? 使用Ruby on Rails

我有一个使用Devise的Rails应用程序用于validation用户,但我想在平台上跟踪用户在线的时间 。 我想在用户表中有一个列,可以节省此用户的在线时间(小时,分钟……)。 例如,一个用户总共在线2小时,另一个用户15分钟…… 是否存在一些用于此function的gem或Devise方法? 提前致谢。

在rails中显示某些用户的博客post

好吧,开始学习rails,当然首先是通过个人博客(类似livejournal)编写服务。 我有post脚手架和用户模型(感谢Devise)。 现在我试图用某个用户显示所有post,例如/ username / posts在url中,但实际上无法理解如何制作这种rails-way。 已经在路由中创建了嵌套资源 resources :users do resources :posts end 和连接的用户和post模型 has_many :posts 和 belongs_to :user 我应该为用户创建控制器吗? 有没有正确的方法呢? PS谢谢你的回答。 试图研究rails,但几乎每个我发现的教程都以脚手架结束,这不是很有用。 编辑1:由于“匹配”的想法,我解决了一半的问题。 另一个(未解决的)一半是选择由某个用户写的post 编辑2:添加 @user = User.where(:username => params[:username]) @posts = @user.posts 对于控制器,但我在post控制器中有“未定义的方法`post’”错误。

设计:将现有访客用户转换为注册用户

我正在通过创建访客用户自动将每个新用户登录到站点中,如下所述: https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user 这允许每个用户在我的网站上使用一些基本的东西,例如创建评论。 现在,当用户决定注册时,我想将访客用户转换为注册用户。 我试图像这样实现我自己的User.new_with_session方法: def self.new_with_session(params, session) user = User.find(session[:guest_user_id]) user.name = params[:name] user.email = params[:email] user.password = params[:password] user.password_confirmation = params[:password_confirmation] user.created_at = nil user.updated_at = nil user.confirmed_at = nil user.guest = false user rescue ActiveRecord::RecordNotFound super end 但这不起作用。 不知何故,在提交表单时,设计似乎检测到用户已经存在于DB中,因此甚至不尝试对其进行validation等,而只是退出注册过程(因为它正在考虑用户)已经登录并转发到其他某个页面,这会导致“您需要在继续之前登录或注册”。 flash消息。 据我所知,这甚至在 Devise::RegistrationsController#create被调用之前发生了。 所以这是我的问题:有没有办法告诉Devise不要仅仅因为用户已经存在于DB中而认为用户已登录(尽管我不知道Devise在提交注册表后如何了解用户) ? 更新 我可以进一步追踪问题。 每当self.new_with_session返回持久记录时,注册过程就会被取消,如上所述。 返回新对象时,注册继续。 但我无法弄清楚这在哪里检查……!?

访问Devise Config变量

在我的Rails应用程序中,直接从视图访问Devise配置变量的方法是什么? 我想从Devise的:confirmable模块中显示config.allow_unconfirmed_access_for 。 此变量在devise.rb初始化程序中设置: Devise.setup do config.allow_unconfirmed_access_for = 3.days end 谢谢!

Rails +设计:尝试删除用户帐户

当我尝试在我的rails应用程序中删除我的帐户时,我得到了 没有路由匹配“/ users” 我的看法: We hate to see you go. “Are you sure?”, :method => :delete %>. 我的路线: user_registration POST /users(.:format) {:action=>”create”, :controller=>”devise/registrations”} new_user_registration GET /users/sign_up(.:format) {:action=>”new”, :controller=>”devise/registrations”} edit_user_registration GET /users/edit(.:format) {:action=>”edit”, :controller=>”devise/registrations”} PUT /users(.:format) {:action=>”update”, :controller=>”devise/registrations”} DELETE /users(.:format) {:action=>”destroy”, :controller=>”devise/registrations”} 我错过了什么吗?

在rails应用程序中自动点击电子邮件中的链接时登录用户?

我的rails应用程序中有一个User模型。 这是一个“设计”模型。 我有一个名为“user-info”的表单,一旦用户登录系统,就可以使用此表单。 我有一个admin登录,其中admin可以发送link到用户email如通过单击button填写“用户信息”。 一旦用户点击该按钮,我希望用户automatically登录系统,而无需重定向到登录页面。 并应navigated到user-info表单。 我想知道在url中发送查询字符串参数,如email =“x@gmail.com”&& form =“user_info”。 但是一旦用户点击了这个,就需要实现我的要求。

用于在Devise上注册的Beta(白名单)电子邮件列表

我正在使用Devise,我正在尝试构建一个要求,即只有我的白名单中包含的电子邮件才能实际注册。 随着时间的推移,电子邮件将添加到该列表中。 意思是今天有10封电子邮件,明天又有20封以上。 但我还不知道如何实现这一目标。 我知道我必须Create my own Registrations Controller ,并且对于validation我认为我需要类似于此的东西: before_validation :whitelisted? def whitelisted? unless WhiteList.exists?(:email => email) errors.add :email, “is not on our beta list” end end 但是,我对如何开始或继续这一点毫无头绪。 我甚至都不知道这是不是最好的做法。 如何将电子邮件添加到该白名单,哪些甚至是白名单? 如果有人可以通奸友好到足以向我解释这一点。

Rails 4,Devise和Mandrill电子邮件

我正在尝试在Rails 4中制作应用程序。 在过去的3年里,我一直在努力弄清楚设计/ omniauth(我仍然试图让它发挥作用)。 当我试图找到通过这个问题的意愿时,撇开主要问题,我试图用Mandrill设置电子邮件。 我找到了这个教程,我试图遵循这个教程: https : //nvisium.com/blog/2014/10/08/mandrill-devise-and-mailchimp-templates/ 我有一个叫做mandrill_devise_mailer.rb的邮件程序 class MandrillDeviseMailer “Reset your password”, :email => record.email, :global_merge_vars => [ { name: “password_reset_link”, # content: “http://www.example.com/users/password/edit?reset_password_token=#{token}” content: “http://www.cr.com/users/password/edit?reset_password_token=#{token}” }, { name: “PASSWORD_RESET_REQUEST_FROM”, content: record.full_name } ], :template => “Forgot Password” } mandrill_send options end def unlock_instructions(record, token, opts={}) # code to be added here […]

我正在使用Devise,密码更改是重定向到主页,如何保持/ users / edit?

我正在使用/devise/registrations/edit.html.erb ,视图文件是/devise/registrations/edit.html.erb (我没有对它进行任何更改): “off” %> (we need your current password to confirm your changes) 当用户更改密码时,他们将被重定向到root_url (主页)。 我想将它们保存在更改密码页面,即/users/edit 。 我该怎么做? 编辑 – 我有编辑方法的registration_controller,我应该添加什么?

如何在PHP中生成密码,就像Ruby on Rails中的Devise Gem一样

我正在将Ruby on Rails的网站更新为PHP。 我需要生成由Ruby on Rails中的Devise Gem生成的密码。 我必须知道使用PHP创建相同方法的密码的哈希方法是什么。 但是作为初学者,在Ruby on Rails中找到代码并不容易。 如果有人知道我应该在哪里找到它,请帮助我。 这两个都是我发现的: 1) The configuration of encryptor is disabled in devise.rb like below: # config.encryptor = :sha1 2) I read the comments very carefully then I found that they using sha512 and bcrypt as default encryptor. # (default), :sha512 and :bcrypt. Devise also supports […]