Rails 为什么在 controller 和 erb 中调用 where 的 first 返回类型不一样

newRer · September 16, 2017 · Last by newRer replied at September 16, 2017 · 1253 hits
#controller:
@strategy =  Strategy.where ( XXX).first

erb:

@strategy.date
undefined method `date' for #<Strategy::ActiveRecord_Relatio

我已经调用了 first,为什么这里@strategy的类型是 Relation, 使我在 erb 中不能把@strategy当做 model 来直接使用其属性。 例如@strategy.date,就会提示出错,因为@strategy类型是 Relation

假如我把上面的代码去掉 first,


@strategy =  Strategy.where ( XXX)

那么在 erb 中我这样写就没有问题

@strategy.first.date

为什么? 怎么样使@strategy得到 model 类型的结果,才能在 erb 中直接使用。

如果你贴的是源代码,那应该是你的 congtroller 里的代码里有空格。

Reply to tesla_lee

就是空格原因,真是不可思议的语法。谢谢

newRer closed this topic. 16 Sep 20:30
You need to Sign in before reply, if you don't have an account, please Sign up first.