resources :customers do
%w(sale lease).each do |route|
get route.to_sym, action: route.to_sym, as: route.to_sym
end
end
:
class CustomersController < ApplicationController
def sale
end
def lease
end
end
, .
sale lease
Customer, .
, Rails . , CRUD - IE , , , ..
-
, , "" . . , , create , .
, . , :
resources :customers do
resources :leases, controller: :purchases, {type: :lease}
resources :sales, controller: :purchases, {type: :sale}
end
class PurchasesController < ApplicationController
def new
@customer = Customer.find params[:customer_id]
@purchase = @customer.purchases.new(type: params[:type])
end
def create
@customer = Customer.find params[:customer_id]
@purchase = @customer.purchases.new purchase_params
end
private
def purchase_params
params.require(:purchase).permit(:type, :customer_id :etc, :etc)
end
end
class Purchase < ActiveRecord::Base
belongs_to :customer
end
class Customer < ActiveRecord::Base
has_many :purchases
end
, STI ( ) sale lease:
class Sale < Purchase
end
class Lease < Purchase
end
, .