ruby-on-rails - Rails if 语句使用包含?给出语法或字符串文字错误的方法
问题描述
在我的 RoR 应用程序中,我正在尝试创建一个方法,该方法将查看文本字段(正文)并在英国手机号码已被共享时向 slack 发布消息。我正在通过搜索07
或出现在正文中任何位置的“+447”来测试英国手机号码。
def contact_details_shared
if self.body.include? '07' || self.body.include? '+447'
slack_post(self)
end
end
当我尝试在 localhost(例如 rails s)中启动应用程序时,会出现以下错误:
syntax error, unexpected tSTRING_BEG, expecting keyword_then or ';' or '\n'
但我在这里看不到任何语法问题。
所以我也尝试了以下
def contact_details_shared
if ( self.body.include? '07' || self.body.include? '+447' )
slack_post(self)
end
end
当我尝试在 localhost(例如 rails s)中启动应用程序时,会出现以下错误:
warning: string literal in condition
我对此感到惊讶,因为我的代码应该为每个 OR 条件(而不是字符串)返回一个布尔值。
所以......两个问题:1)我怎样才能让代码工作?2)我想有些解决方案比我的更优雅。非常欢迎提出建议!有任何想法吗?
解决方案
尝试:
if self.body.include?('07') || self.body.include?('+447')
我怀疑 ruby 需要明确标识使用括号提供的参数(即'07'
和)。'+447'
推荐阅读
- python - 我编写了一个不和谐的机器人来使用命令使用户静音,但该机器人不能使用机器人服务器模块,但此代码也是静音模块。如何解决?
- mongodb - 如何在 MongoDB C 驱动程序中向 bson 添加字段
- python - print(threading.current_thread().getName()+ str (' is started \n')) 为什么 getName() 被划掉了?
- python - 我可以在一个项目中使用电子邮件验证功能和使用谷歌登录吗?(在 django 中)
- reactjs - 如何从同一个liferay门户的react js中验证调用jax-rs?
- next.js - 在 vercel 上部署后,next-i18next 无法在动态页面中使用 serversideprops
- javascript - 你如何在javascript中的这个函数代码中添加2decimals点?
- java - 如何正确理解 Google Play 控制台崩溃报告提供的堆栈竞争
- javascript - 我需要允许负数进入这个函数
- java - 无法在我的世界中生成掉落的方块