我能够让我的代码正常工作,但我不喜欢它在语法上的工作方式--甚至不确定这是否是一个词。
我目前的代码:
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我希望它的外观/工作方式:
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这就是我要犯的错误
/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时遇到了困难,没有定义它。很抱歉给你造成了混乱。
发布于 2017-03-24 16:07:13
如果将方法从def set_phone更改为def phone=,那么调用起来就会更加困难,但仍然有可能:
user.send :phone=, phone do
# ...
endhttps://stackoverflow.com/questions/43002705
复制相似问题