我已经创建了一个lib/services/my_service.rb文件.
# /lib/services/my_service.rb
class MyService
...
end
Run Code Online (Sandbox Code Playgroud)
我想在app/controllers/my_controller中使用它
class MyController < ApplicationController
def method
service = MyService.new()
end
Run Code Online (Sandbox Code Playgroud)
我收到的错误是MyService是一个未初始化的常量.我试着用它导入它
require '/lib/services/my_service.rb'
Run Code Online (Sandbox Code Playgroud)
但我得到了
cannot load such file -- /lib/services/my_service.rb
Run Code Online (Sandbox Code Playgroud)
编辑:我已尝试使用application.rb进行自动加载
config.autoload_paths << Rails.root.join('lib')
Run Code Online (Sandbox Code Playgroud)
但没有骰子.仍未获得未初始化的常量MyController :: MyService
有没有办法从Python元组中弹出第一个元素?
例如,对于
tuple('A', 'B', 'C')
Run Code Online (Sandbox Code Playgroud)
我想弹出'A'并且有一个包含'B'和'C'的元组.
由于元组是不可变的,我知道我需要将它们复制到一个新的元组.但是我怎样才能过滤出元组的第一个元素?
我正在编写一个主要通过API访问的应用程序,但还将具有通过Web应用程序进行编辑的视图。
我想在两个平台上创建一个具有身份验证和授权的用户模型。
我很难理解devise和devise_token_auth库之间的关系,除了大多数铁路应用建议使用前者之外,后者对于仅API身份验证非常有用。
就我而言,应该使用什么适当的库?还是应该同时使用两者?我应该通过devise生成User模型,然后向其添加令牌auth吗?两个系统是否使用不同的身份验证方案?我只是想了解为什么devise_token_auth与devise分开存在。
我还对基于令牌的身份验证的复杂性有些困惑。简单地通过设计来注册和管理用户,为他们生成一个API密钥,然后让他们以此来签名他们的API请求,那会有什么问题。为什么在API中需要基于令牌的身份验证?
authentication ruby-on-rails devise ruby-on-rails-5 devise-token-auth
我有一个非常基本的邮件程序设置,如下所示来发送交易邮件程序:
class PayoutMailer < ApplicationMailer
default from: 'hello@groundworkai.com'
def payout_success_email(email, payment_size, user_name)
@payment_size = payment_size
@user_name = user_name
subject = 'Your Rewards Have Been Sent!'
mail(to: email, from: 'hello@myservice.com', subject: subject)
end
end
Run Code Online (Sandbox Code Playgroud)
我正在用这条线测试:
PayoutMailer.payout_success_email('test@example.com',
200000,
'test name').deliver_later
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我使用 .deliver 或 .deliver_now 时,邮件会发送,但是当我使用 delivery_later 异步委托它时,它会排队但永远不会发送。输出是:
I, [2018-01-20T15:27:44.140104 #4] INFO -- : [ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 265cb31a-dec4-4adb-866d-06e44645c53a) to Async(mailers) with arguments: "PayoutMailer", "payout_success_email", "deliver_now", "test@example.com", 200000, "test name"
Run Code Online (Sandbox Code Playgroud)
我知道 ActionJob 在我使用 Deliver_later 时正在处理它,根据文档:
Active Job 的默认行为是通过 :async 适配器执行作业。因此,您现在可以使用 …
我正在使用该命令,git config credential.helper 'cache'因此不必重复输入用户名和密码。但是,这要求我设置一次凭据。有没有一种方法可以初始化缓存,管道中来自环境变量的值,该变量将在 runitme(例如$USER和$PASS)中可用,但不能长期存储?
我不想使用git config user.name "your username"和等效的password命令,因为它会尝试以明文形式存储密码。我基本上只想在脚本中运行
git config credential.helper 'cache'
git config /*set $USER in cache*/
git config /*set $PASS in cache*/
Run Code Online (Sandbox Code Playgroud)
但不确定第二个和第三个命令会是什么样子,如果它们存在的话。
我有一个Ruby对象User,它有一个:first_name成员变量.我希望能够使用字符串访问该变量.
所以,如果我有一个名为u的用户:
u.'first_name' 应该相当于 u.first_name
我如何使用反射来获取u.first_name通过字符串,该字符串作为变量传入?