由于一个简单的 Rails where查询,我快要失去理智了。我简直无法理解为什么它在 10 行前确实可以工作,而在它之后却没有。我无法弄清楚可能导致问题的原因
@userID = Token.where(:tokenCode => @tokenReceived)
#@init.tokenCode=@tokenReceived+"1" #randomize algorithm required!
@init.tokenCode=@codeGenerated=generate_activation_code()
if @userID.nil?
@newToken=Token.new
@newToken.tokenCode=@codeGenerated
else
@tokenToAdd = "12"
@newToken=Token.where(:userID => "1")
#if @newToken.nil?
@newToken.tokenCode="12"
#end
end
#@newToken.save
@init.save
当我向“http://localhost:3000/inits.json”发出成功的 JSON 请求时,它给了我一个包含大量错误的页面,但我认为其中的主要错误是:
<h1>
NoMethodError
in InitsController#create
</h1>
<pre>undefined method `tokenCode=' for #<ActiveRecord::Relation:0x007fc43cb40b88></pre>
可能是什么原因?我写的where子句都错了吗?
编辑:当我激活 if 子句时,它会起作用。我只是相信@newToken 对象是空的,但是我几乎不可能发现原因。我的 Token 表中有一个用户 ID为1 的数据。