2016-04-06 7 views
0

ile ilişkilendirerek kullanıcı listesi sipariş etme Kapsamımla ilgili bir sözdizimi hatası ve yığın taşmasıyla ilgili birçok örnekte arama yapabildiğim, ancak bunu çözemediğimizde yardımınız çok takdir edilecektir.Bir Scope - Rails 4

  • i şirket adına göre kullanıcıların listesini sıralayan bir kapsam oluşturmak çalışıyorum
  • biri nazik ı kullanıcıların listesini görüntülemek mümkün duyuyorum bir kapsam yazmak için doğru yolda bana tavsiye olabilir ama onların companyname bunları sipariş

models

user.rb 
belongs_to :company 
scope :company_order, ->() { joins(:company).where('company.companyname desc') } 

company.rb 
has_many users 

schema

users 
t.string "name", 
t.string "email", 
t.integer "company_id" 

companies 
t.string "companyname", 

views file

<% @users.company_order.each do |user| %> 
    <div class="tablerow"> 
    <div class="tablecell"> 
     <div>e: <%= link_to user.name, '#' %></div> 
     <div>t: <%= link_to user.email.tel, '#' %></div> 
    </div> 
    <div class="tablecell"> 
     <div>Company</div> 
     <div><%= user.company.companyname %></div> 
    </div> 
    </div> 
<% end %> 

benim kapsamı: scope :company_order, ->() { joins(:company).where('company.companyname desc') } ve görünümleri <% @users.company_order.each do |user| %> onu aramayı denedim ama aşağıda sözdizimi hatası alıyorum:

error

SQLite3::SQLException: near "desc": syntax error: SELECT "users".* FROM "users" INNER JOIN "companies" ON "companies"."id" = "users"."company_id" WHERE (company.companyname desc) 

could one kindly advise me on the correct way to write a scope where i am able to display the list of users but order them by their companyname

cevap

1

ORDERwhere yöntemi içinde olmamalı ancak order'un içinde:

scope :company_order, ->() { joins(:company).order('companies.companyname desc') } 

where sorgulama koşullarında, tablo adını çoğul olarak da unutmayın.

+0

Teşekkürler! @murifoX – ARTLoe