首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby如何用产率调用类setter

Ruby如何用产率调用类setter
EN

Stack Overflow用户
提问于 2017-03-24 14:56:01
回答 1查看 55关注 0票数 0

我能够让我的代码正常工作,但我不喜欢它在语法上的工作方式--甚至不确定这是否是一个词。

我目前的代码:

代码语言:javascript
复制
user.set_phone(phone) do
  message = "Verify your phone number #{@host}/phone/verify?id=#{user.id}&code=#{user.phone_verification_code}"
  CoreIntegrations::Sinch.send_text(message, phone)
end

我希望它的外观/工作方式:

代码语言:javascript
复制
user.phone=(phone) do
  message = "Verify your phone number #{@host}/phone/verify?id=#{user.id}&code=#{user.phone_verification_code}"
  CoreIntegrations::Sinch.send_text(message, phone)
end

这就是我要犯的错误

代码语言:javascript
复制
/Users/christianjuth/Desktop/apollo-8/app/controllers/application_controller.rb:140: syntax error, unexpected keyword_do, expecting keyword_end /Users/christianjuth/Desktop/apollo-8/app/controllers/application_controller.rb:267: syntax error, unexpected keyword_end, expecting end-of-input

行号可能与回购同步,情况是我对应用程序控制器进行了一些本地更改。

沿着这条线...Or一些东西。user是一个ActiveRecord模型。我之所以要这样做,是因为只有当发送到user.phone=的变量user.phone=user.phone的现有值不同时才调用user.phone

我认为这更像是一个语法问题,但只是为了防止上下文中的这是回购。在app/controllers/application_controller.rb中查看的代码和用户模型可以在user/models/user.rb中找到。

更新:我在调用setter时遇到了困难,没有定义它。很抱歉给你造成了混乱。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 16:07:13

如果将方法从def set_phone更改为def phone=,那么调用起来就会更加困难,但仍然有可能:

代码语言:javascript
复制
user.send :phone=, phone do
  # ...
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43002705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档