我使用Slack-Notifier gem将web挂钩添加到我的rails应用程序中。
每次在数据库中创建新用户时,我都希望触发一个Web挂钩。
我有以下内容,但我认为我的语法已关闭。我的IDE中出现以下错误。
def create
@user = User.new(user_params)
if @user.save
@user.send_activation_email
flash[:info] = "Welcome to Pallet! Please check your email to activate your account."
SLACK_NOTIFIER.ping("New Directory User: #{@user: @user.email, @user.discipline}", username: 'notifier', icon_emoji: ':confetti_ball:")
redirect_to charges_path
else
render 'new'
end
end
配置/初始化/ slack.rb
require 'slack-notifier'
SLACK_NOTIFIER = Slack::Notifier.new( "https://hooks.slack.com/services/xxxxxx",
channel: '#directory-bot',
username: 'notifier'
)
答案 0 :(得分:1)
总而言之,这条线看起来有问题:
SLACK_NOTIFIER.ping("New Directory User: #{@user: @user.email, @user.discipline"}, username: 'notifier', icon_emoji: ':confetti_ball:")
我不确定此行的意图是什么,但此行中存在语法错误。例如,
结束花括号应该在字符串插值的双引号内。
此外,@user
将转换为ruby对象。所以我认为你可能会给出user:
而不是@user:
。
编写@user.email, @user.discipline
时是否需要数组?您需要明确地将它们放在[]
。
不确定整个上下文,但我认为该行还有其他问题。
答案 1 :(得分:0)
如果您使用单引号打开字符串,则必须使用单引号将其关闭。
SLACK_NOTIFIER.ping("New Directory User: #{@user: @user.email, @user.discipline"}, username: 'notifier', icon_emoji: ':confetti_ball:')
SINGLE QUOTE HERE TOO ^
如果您打开(
,则必须将其关闭:
要求'slack-notifier'
SLACK_NOTIFIER = Slack::Notifier.new( "https://hooks.slack.com/services/xxxxxx",
channel: '#directory-bot',
username: 'notifier'
)
代码中有更多错误只是那两个,我不打算指出它们,因为Stack Overflow不是语法验证的地方。
你真的需要在Ruby中使用速成课程来学习基本语法。