我試圖排列數組中的一列,但未排序顯示的值沒有按姓氏順序排列。在視圖中發佈排序陣列
這是我的表:
|products|
|id| |money| |client_id|
1 1000 1
2 2000 4
3 2000 7
4 2000 5
5 2000 6
6 2000 3
7 2000 2
|customers|
|id| |name| |lastname1| |lastname2|
1 Lionel Messi Bueno
2 Cristiano Ronaldo Tiger
3 Cecs Fabregas Midtlon
4 Andres Iniesta Blanco
5 Neymar Dos Santos Junior
這是我的控制器
class ProductController < ApplicationController
def index
@products= Product.all
end
end
這裏是模型
class Client < ActiveRecord::Base
has_many :products
def str_name
return lastname1.to_s+" "+lastname2.to_s+" "+name.to_s
end
end
class Product < ActiveRecord::Base
belongs_to :client
end
這是我的視圖
<table>
<tr>
<td>Money</td>
<td>Client</td>
</tr>
<% @products.each do |p| %>
<tr>
<td><%= p.money %></td>
<td><%= p.str_name %></td>
<% end %>
</tr>
</table>
我試過,但沒有被lastname1 ASC訂購:
<% @products.each do |p| %>
<tr>
<td><%= p.money %></td>
<td><% @a= p.client(:order=>"lastname1 ASC")%> <%= @a.str_name %></td>
<% end %>
日誌是:
SELECT * FROM `clients` WHERE (`clients`.`id` = 1)
SELECT * FROM `clients` WHERE (`clients`.`id` = 2)
SELECT * FROM `clients` WHERE (`clients`.`id` = 3)
SELECT * FROM `clients` WHERE (`clients`.`id` = 4)
而且應該是這樣的:
SELECT * FROM `clients` order by last_name1 ASC
請有人可以幫助我嗎?
不要在視圖中執行'<%@ a = p.client(:order =>「lastname1 ASC」)%>'。在控制器中執行此操作,並在視圖中訪問「@ a」。 –
@瘦男人怎麼可能是正確的答案?你能幫我嗎? –