0

これは何をしようとしていますpersonはレール付きですが、レールが付いています5レール5の親アソシエーションにリンクするにはどうすればよいですか?

私のアプリでは2つのコントローラと3つのモデルがあります。

私の2つのコントローラーはOrdersControllerListingsControllerです。私の3つのモデルはOrder,ListingUserです。

ListingsControllerの中で私の#showアクションにリンクしている私のOrdersControllerの中の私の販売と購入ページにユーザー関連のリンクを作成しようとしています。私はこのように私の販売と購入ページを見に持って

リンクは:

class OrdersController < ApplicationController 
    before_action :set_order, only: [:show, :edit, :update, :destroy] 
    before_action :authenticate_user! 

    def sales 
    @orders = Order.all.where(seller: current_user).order("created_at DESC") 
    end 

    def purchases 
    @orders = Order.all.where(buyer: current_user).order("created_at DESC") 
    end 

    # GET /orders/new 
    def new 
    @order = Order.new 
    @listing = Listing.find(params[:listing_id]) 
    end 
end 
:これは私の OrdersControllerある

belongs_to :listing 
belongs_to :buyer, class_name: "User" 
belongs_to :seller, class_name: "User" 

:これは私のOrderモデル

<% @orders.each do |order| %> 
    <tr> 
    <td class="center"><%= link_to 'View The Game Your Sold', listing_path(@listing) %></td> 
    </tr> 
<% end %> 

ある

これは私のListingモデルです:

belongs_to :user 
has_many :orders 
has_many :fullgames 

def self.search(params) 
    listings = all # for not existing params args 
    listings = listings.where("name like ?", "%#{params[:name]}%") if params[:name] 
    listings 
end  

これは私のListingsController

class ListingsController < ApplicationController 
    before_action :set_listing, only: [:show, :edit, :update, :destroy] 
    before_filter :authenticate_user!, only: [:seller, :new, :create, :edit, :update, :destroy] 
    before_filter :check_user, only: [:edit, :update, :destroy] 

    def seller 
    @listings = Listing.where(user: current_user).order("created_at DESC") 
    end 

    # GET /listings 
    # GET /listings.json 
    def index 
    @listings = Listing.all.order("created_at DESC").search(params).paginate(:page => params[:page], :per_page => 2) 
    end 

    # GET /listings/1 
    # GET /listings/1.json 
    def show 
    end 
end 

これは私のUserモデルです:

has_many :listings, dependent: :destroy 
has_many :sales, class_name: "Order", foreign_key: "seller_id" 
has_many :purchases, class_name: "Order", foreign_key: "buyer_id" 
+0

あなたの質問が長すぎる、私はあなたを取得できませんでした。あなたの質問 – Vishal

+0

app/views/orders/sales.html.erbの詳細を明確にしてください(各ユーザーが作成した販売リストがあります) app/views/orders/purchases.html.erb各ユーザーが行った購入) アプリ/ビュー/リスト/ index.html.erb(すべての項目の一覧が表示されます) アプリ/ビュー/リスト/ show.html.erb(indivivually項目に表示) 私は私のユーザーがそこにあるセールスページや購入アイテムをクリックして、そのアイテムをショーページの にリンクさせるようにします。 – AaronG

答えて

0
# Order Model 
class Order < ApplicationRecord 
    scope :recent, -> { order("created_at DESC") } 
end 

# ListingsController 
class ListingsController < ApplicationController 
    ... 
    before_filter :authenticate_user!, only: [:show, :seller, :new, :create, :edit, :update, :destroy] 

    # GET /listings/1 
    # GET /listings/1.json 
    def show 
    @purchases = current_user.purchases.recent 
    @sales = current_user.sales.recent 
    end 
end 

# show.html.erb 
# for purchases orders 
<% @purchases.each do |purchase_order| %> 
    <tr> 
    <td class="center"><%= purchase_order %></td> 
    </tr> 
<% end %> 

# for sales orders 
<% @sales.each do |sale_order| %> 
    <tr> 
    <td class="center"><%= sale_order %></td> 
    </tr> 
<% end %> 
関連する問題