我选择了一行Model by
@name = Quest.where(category: 'cat1').sample(1)
并在此视图上打印
? <p><%= @name %></p>
然后在视图
上打印出[#<Quest id: 4, name: "q4", category: "cat1", content: "d", description: "d", created_at: "2017-07-21 08:28:00", updated_at: "2017-07-21 08:28:00">]
它是什么?和
#<..>
??
答案 0 :(得分:1)
使用sample
代替sample(1)
,因为第一个会返回一个实例而不是一个包含一个元素的数组
@question = Quest.where(category: 'cat1').sample(1)
#=> [#<Quest id: 4, name: "q4", category: "cat1", content: "d", description: "d", created_at: "2017-07-21 08:28:00", updated_at: "2017-07-21 08:28:00">]
上面的语句将返回一个包含1个元素的数组。所以,改为使用
@question = Quest.where(category: 'cat1').sample
#=> #<Quest id: 4, name: "q4", category: "cat1", content: "d", description: "d", created_at: "2017-07-21 08:28:00", updated_at: "2017-07-21 08:28:00">
然后您可以访问Question
属性
<p><%= @question.name %></p>
答案 1 :(得分:0)
@name
表示Quest模型的单个对象数组。要获取该对象的ID,请使用
<p><%= @name.first.id %></p>
或将您的控制器代码更改为
@name = Quest.where(category: 'cat1').sample
然后再做
<p><%= @name.id %></p>