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

newRer · 2017年09月16日 · 最后由 newRer 回复于 2017年09月16日 · 1263 次阅读
#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 里的代码里有空格。

tesla_lee 回复

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

newRer 关闭了讨论。 09月16日 20:30
需要 登录 后方可回复, 如果你还没有账号请 注册新账号