因此,我的计划有2个模型,Cars
和Payments
,其中付款为belong_to
汽车并且是一对多关系。
我想通过付款方式创建一个计算帐户的功能。价值并在特定时期内。用户将提供2个输入start_date
和end_date
,然后程序将使用所述期间内的付款计算总利润和费用。
我的问题是,对于帐户部分,我应该创建一个帐户控制器,还是在现有payment_controller
中创建新路由来计算帐户部分。如果创建帐户控制器,如何从帐户控制器访问付款模型?
请参阅我的项目的此链接。
https://dl.dropboxusercontent.com/u/10960981/VKVINAUTO.rar
或者你可以建议一个更好的方法让我继续。
答案 0 :(得分:2)
<强> GIT 强>
首先,您需要考虑使用git
或其他Software Configuration Management系统 - 这将使您能够正确管理代码的各种元素。各自的版本。
具体而言,您不应该使用您的代码发布RAR
文件。您将更适合使用GitHub
或BitBucket
之类的内容来存储&amp;分享您需要帮助的相关代码片段。
您最适合使用this Railscast查找git
:
<强>修正强>
要回答有关修复的问题,请注意以下事项:
#config/routes.rb
root: "payments#index"
resources :cars do
resources :payments
end
#app/models/car.rb
class Car < ActiveRecord::Base
has_many :payments do
def dates begin, end
where("created_at >= begin AND created_at <= end")
end
end
end
#app/models/payment.rb
class Payment < ActiveRecord::Base
belongs_to :car
end
#app/controllers/cars_controller.rb
class PaymentsController < ApplicationController
def index
@car = Car.find params[:car_id]
@payments = @car.payments
if params[:begin].present? && params[:end].present?
@payments = @car.payments.dates(params[:begin], params[:end])
end
end
end
这将使您能够使用以下内容:
#app/views/payments/index.html.erb
<%= form_tag car_payments_index(@car), method: :get do %>
<%= text_field_tag :begin %>
<%= text_field_tag :end %>
<%= submit_tag "Go">
<% end %>
这将基本上“刷新”付款索引页面,根据需要确定日期。
<强>模型强>
如果您想从Payment
访问accounts_controller
模型,您只需通过调用它来引用它:
#app/controllers/accounts_controller.rb
class AccountsController < ApplicationController
def index
@payments = Payment.all
end
end
您需要阅读MVC programming pattern,其中构建了Rails。这将显示Models
,views
和Controller
之间的关系 - 具体来说,它们是可互换的/独占的