0

我试图做这个person做了什么,但与rails 5.如何链接到rails 5中的父关联?

在我的应用程序,我有两个控制器和三个模型。

我的两个控制器是OrdersControllerListingsController。我的三个型号是OrderListingUser

我正在尝试在我的OrdersController内的我的销售和购买页面上创建用户关联链接,该链接指向我的ListingsController中的#show操作。

,我有我的销售和购买页面看起来像这样的链接:

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

这是我Order型号:

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

这是我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 

这是我的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 %>