2016-03-24 22 views
0

Ben raylara yeniyim, yardımlarınız ve tavsiyeleriniz çok takdir edilecektir.Bir has_many için yazma kapsamı belongs_to Dernek - Raylar 4

amacı:

  • ne yapmam amaçlıyoruz dolmamış reklamlar ait tek başvuru formlarını göstermektir. 2 aktiftir ve 1 i @user.forms.count bütün kullanıcılar başvuru formlarını güvenebilirsiniz
  • süresi doldu - - i 3 reklamlar oluşturdu var - bu, şu anda
  • i tüm iş olarak işlediği bir kullanıcı
  • şu anda Reklamlara var tüm reklamlar için her türlü gösterecektir
  • biri ben

modellerini

süresi henüz reklamlar sadece kullanıcının formları görüntülemek nasıl bana tavsiye verebilir
user.rb 
has_many forms 

form.rb 
belongs_to user 
belongs_to advert 

advert.rb 
has_may forms 

scope :active_adverts, -> {where(['deadline >= ?', Date.current])} 

users_controller.rb

def dashboard 
    if current_user 
     @user = User.find(current_user) 
     @user_applications = @user.forms 
     @form = @user.forms.find(params[:id]) 
    else 
     redirect_to error_path 
    end 
    end 

i <%= @user.forms.where(advert: @form.advert.active_advert).count %> "görünümleri/kullanıcılar/dashboard.html.erb" görünümünde bu denedik ama bu işe yaramaz gerçekleştirmek için geldim . Eğer tavsiye çok Böyle scope tanımlayabilir

cevap

1

takdir edilecektir:

class User < ActiveRecord::Base 
    has_many :forms 
    has_many :adverts, through: :forms # <-- The change here 
end 

class Advert < ActiveRecord::Base 
    has_many :forms 
    scope :active, -> { where('deadline > ?', Time.now) } # <-- The change here 
end 

class Form < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :advert 
end 

Yani senin count function olacaktır:

@users.adverts.active.count 
+0

seni çok Hieu teşekkür ederim! – ARTLoe

İlgili konular