标签: devise-invitable

如何覆盖设计可邀请的操作

我在我的应用程序中使用设计可用的gem.如果用户存在于应用程序中并且他单击接受邀请链接,则应将其重定向到登录页面,如果新用户单击该链接,则应将其重定向到注册页面.我没有得到如何覆盖after_accept_path_for方法...在哪里以及如何覆盖此方法,有人可以帮助我吗?关注https://github.com/scambra/devise_invitable/链接

devise ruby-on-rails-3.2 devise-invitable

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

测试设计邀请

我在我的应用程序中使用设计邀请。我已经为一些自定义行为覆盖了设计邀请控制器。当我尝试为此编写控制器测试时,出现以下错误:

NoMethodError: undefined method 'name' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

这样做时会发生这种情况get :new

按照设置方向的指示设置路线:

devise_for :users, controllers: { sessions: 'users/sessions', invitations: 'users/invitations', registrations: :registrations }
Run Code Online (Sandbox Code Playgroud)

控制器位于 /app/controllers/users/invitations_controller.rb 下,名称在Users::InvitationsController与测试 /tests/controllers/users/invitations_controller.rb 相同的文件中正确间隔Users::InvitationsControllerTest

这是测试:

context '#new' do
  context 'while not signed in' do
    should 'redirect to the login page' do
      get :new
      assert_redirected_to new_user_session_path
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是行动:

def new
  self.resource = resource_class.new
  self.resource.build_group if current_inviter.is_admin?
  self.resource.group = current_inviter.group if current_inviter.is_manager?
  render :new
end
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助谢谢。

ruby ruby-on-rails devise devise-invitable

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

如何使用 devise invitable 向用户重新发送邀请?

我设计了一个诱人的宝石\n连接在我的应用程序和设计中。

\n

一切工作正常。当我创建新用户时,它们会保存在数据库中,并且邮件程序会向电子邮件地址发送电子邮件。用户单击电子邮件,设置密码,然后登录。

\n

但有时这些用户会丢失电子邮件,或者更确切地说无法在电子邮件收件箱中找到它。我\xe2\x80\x99d 喜欢在用户索引页面上有一个重新发送邀请按钮。

\n

当用户单击重新发送时,我希望邀请用户收到另一封发送给他们的电子邮件。

\n

有人用 devise invitable 成功完成了这个任务吗?如果是这样,你能分享一下如何做吗?

\n

ruby ruby-on-rails devise devise-invitable

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

on_file_autoloaded':期望文件invitations_controller.rb定义常量InvitationsController,但没有(Zeitwerk::NameError)

我又带着我的 ctrlpanel 应用程序回来了。

我让它 100% 处于开发状态,并完成了将其加载到 Heroku 并安装了应用程序、安装 gems 的过程。数据库(大部分)都在那里,但我什至在数据库之前就遇到了问题。我在处理 devise_invitable 时遇到错误,但我在开发中没有遇到该错误。令我惊讶的是,当我在笔记本电脑上启动生产时,我确实遇到了同样的错误,这至少让我感到震惊,因为在开发中一切都很完美。所以我知道这不是 Heroku 问题,我很高兴至少可以重现它。完整的错误如下,但专门处理该错误的行是:

"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/loader/callbacks.rb:18:in `on_file_autoloaded': expected file D:/rails/ctrlpanel/app/controllers/invitations_controller.rb to define constant InvitationsController, but didn't (Zeitwerk::NameError)C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/loader/callbacks.rb:18:in `on_file_autoloaded': expected file D:/rails/ctrlpanel/app/controllers/invitations_controller.rb to define constant InvitationsController, but didn't (Zeitwerk::NameError)"
Run Code Online (Sandbox Code Playgroud)

我在网上做了一些搜索(实际上很多),我唯一能找到的就是建议将invitations_controller.rb文件复制到controllers文件夹下一个名为users的文件夹中,我确实尝试过,我复制了它实际上我也尝试过移动它。两者都没有帮助。这在开发中可以正常工作。所以我开始比较这两个环境文件。

我通过更改这两个条目来克服它:

config.cache_classes = false in production.rb
config.eager_load = false in production.rb
Run Code Online (Sandbox Code Playgroud)

然而,我到处都看到帖子说关闭这两个选项是非常糟糕的,它会以某种方式影响视图,果然我的引导程序都是球童使用的,我只能假设是由于这两个选项被关闭。我确信其他人以前一定见过这个,但我似乎找不到任何东西。我检查了 devise_invitable 文档,将其更新为 av .02 更高(没有效果)。
错误太长,我很难找到一个好的搜索词来获得结果。

我很困惑,因为一切都必须正确,否则在开发中就无法正常工作,或者我不这么认为?如果需要查看任何其他文件,请告诉我,我很乐意显示它。

预先感谢您提供的任何帮助或建议。

斯科特

这是错误:

scottm@RED-IT-LAP-0001 MINGW64 /d/rails/ctrlpanel (master)
$ rails server -e production
=> Booting Puma
=> Rails 6.1.3.2 application starting in production
=> …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails devise-invitable

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

Rails/Devise:valid_password?方法返回nil

在我的应用程序中有两种用户(运动员和用户).Athlete模型扩展了User模型,常规用户模型为其他类型的用户分配了不同的角色.

出于某种原因,我的一些用户具有某种角色,该valid_password?方法无效.这适用于通过invitable设计模块邀请的用户.还有其他人碰到这个吗?这导致我的应用无法在受邀用户无法登录的情况下正常工作

ruby-on-rails devise devise-invitable

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