배열 내부에서 열을 정렬하려고하지만 순서가 지정되지 않은 것은 ASC없이 주문하지 않고 값을 표시하고 있습니다. 여기 보기의 배열 배열 문제
내 테이블 : 여기|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 오름차순으로 주문되지 않습니다
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)
그리고 다음과 같이해야한다 :
<% @products.each do |p| %>
<tr>
<td><%= p.money %></td>
<td><% @a= p.client(:order=>"lastname1 ASC")%> <%= @a.str_name %></td>
<% end %>
로그는
SELECT * FROM `clients` order by last_name1 ASC
제발 누군가가 나를 도울 수 있습니까? 이것이 당신의 질문에 대한 대답,하지만 두 번째 td
에서 ERB 태그가 페이지에 아무것도를 인쇄하지 않은 경우
보기에서'<% @ a = p.client (: order => "lastname1 ASC") %>'하지 마십시오. 제어기에서 그것을 수행하고,보기에서'@ a'에 액세스하십시오. –
@ 얇은 사람 어떻게 정답이 될 수 있겠습니까? 도와 줄수있으세요? –