0
私はレールが初めてであるので、あなたの助けと助言は非常に高く評価されます。has_manyのスコープを書くbelongs_to Association - Rails 4
目的:
- 私は何を目指し、何が期限が切れていない広告に所属する唯一のアプリケーションフォームを表示することです。 2がアクティブで、1 iは
@user.forms.count
により、すべてのユーザーがアプリケーションのフォームを数えることができる - 、期限が切れています - - 私は3つの広告を作成している - これは現在
- 私はすべてのジョブに適用されたユーザが
- 現時点での広告持っていますすべての広告のためのすべてのフォームを表示します
- 一つは、私が
モデル
期限切れされていない広告の唯一のユーザーのフォームを表示する方法を私に助言することができ
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
私は<%= @user.forms.where(advert: @form.advert.active_advert).count %>
"ビュー/ユーザー/ dashboard.html.erb" ビューでこれを試みたが、私はそれが動作しません実現するために来ています。
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
だからあなたcount function
は次のようになります:あなたはこのようなscope
を定義することがずっと
洙多くのヒエウをありがとうございました! – ARTLoe