我想根據另一個表產品中提到的brand_id檢索品牌名稱。我的品牌id以「brandids」中的數組形式存儲。這是我的控制器代碼。控制器方法中的Rails SQL查詢
def index
catids = Array.new
brandids = Array.new
@products = nil
if(!(params[:catid].nil?) && params[:catid].to_s.downcase != "all")
catids = arrayConvertion(params[:catid])
end
if(!(params[:brandid].nil?) && params[:brandid].to_s.downcase != "all")
brandids = arrayConvertion(params[:brandid])
end
if(catids.length == 0 && brandids.length == 0)
@products = Product.solr_search do
paginate :page => params[:page], :per_page => 3
end
@brands={}
@products.each do |p|
brand = p.BrandsTest.first(p.brands_test_id)
@brands[p.id] = BrandsTest.name
end
end
,並針對該控制器的看法是:
<% @products.results.each do |p| %>
<%= image_tag("Images/#{p.id}.jpeg",:alt => p.name) %>
<p> Name: </p>
<%= p.name %>
<p> Price: </p>
<%= p.price %>
<p> Discount: </p>
<%= p.discount %>
<p> Brand Name: </p>
<%= @brands[p.id] %>
<% end %>
產品型號代碼:
class Product < ActiveRecord::Base
belongs_to :brands_test
belongs_to :categories_test
attr_accessible :id, :name
searchable do
integer :id
text :name
integer :brands_test_id
integer :categories_test_id
end
end
我應該需要什麼樣的查詢添加和在那裏我有補充? 請幫我這個。
我想這一點。 '@products = Product.solr_search DO @brands = BrandsTest.solr_search做 用:姓名,brandids [0..brandids.length] PAGINATE:頁=> PARAMS [:頁],:per_page => 3 端 end'。並將viewfile更改爲'<%@ products.results.each do | p | %> <%@ brands.results.each do | b | %>
品牌名稱:
\t <%= b.name %>' 但我得到以下錯誤。沒有爲BrandsTest配置名稱爲'name'的字段 – user2218532