我能够让我的代码正常工作,但我不喜欢它在语法上的工作方式 - 不确定这是否是一个单词。
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
行号可能与repo同步,例如我对应用程序控制器进行了一些本地更改。
......或者其他类似的东西。 user
是ActiveRecord模型。我想这样做的原因是,只有在发送到phone
的变量user.phone=
与user.phone
的现有值不同时才会调用yield。
我认为这更像是一个语法问题,但仅限于here is repo用于上下文。您正在查看的代码位于app/controllers/application_controller.rb
,用户模型可以在user/models/user.rb
中找到。
答案 0 :(得分:1)
如果您将方法从def set_phone
更改为def phone=
,那么调用将更加困难,但仍有可能:
user.send :phone=, phone do
# ...
end