将记录查询传递给会话

时间:2011-08-06 10:22:54

标签: ruby-on-rails ruby-on-rails-3

有人可以告诉我如何访问@brand_found(下面)中的数组。

我试过@ brand_found.id,@ brand_found [:id],@ brand_found_id ......似乎没什么用。

@brand_found = Brand.where("name = ?", params[:brand])

我想将找到的id传递给会话。

谢谢!

2 个答案:

答案 0 :(得分:1)

@brand_found = Brand.where("name = ?", params[:brand]).first
@brand_found.id #=> brand id

因为where正在返回一个对象数组。

答案 1 :(得分:1)

如你所说,它是一个数组,而数组没有任何id。

你应该迭代它的元素

@brand_found.each_with_index do |element, index|
  session[:"brand_{index}"] = element.id
end

它会将ID存储在session[:brand_0]session[:brand_1]等...

否则,取第一个元素并直接存储它的id,只需附加.first