目前,我有一个公司表,每个公司都有一个表来存储他们的资金数据,其中包含日期和货币价值,我可以在 rails 控制台中创建新数据
Fund.create :date_of_record=>"2010-01-02", :company_id=>"1", :money=>"2003"
当我进入公司页面(例如 company_id=1)时,我可以查看从控制台输入的数据,并对其进行编辑、更新,但是当我单击添加新的资金数据时,我得到了
No route matches {:controller=>"funds", :company_id=>#<Fund id: nil, date_of_record: nil, company_id: 1, money: nil, created_at: nil, updated_at: nil>}
我从 db 创建资金:
class CreateFunds < ActiveRecord::Migration
def change
create_table :funds do |t|
t.datetime :date_of_record
t.references :company
t.integer :money
t.timestamps
end
add_index :funds, :company_id
end
end
我的资金/new.html:
<% form_for ([@company, @fund]) do |f| %>
<p>
<%= f.label :date_of_record %><br />
<%= f.text_field :date_of_record %>
</p>
<p>
<%= f.label :money %><br />
<%= f.text_field :money %>
</p>
<p>
<%= f.submit "Create" %>
</p>
<% end %>
<%= link_to 'Back', company_funds_path(@fund) %>
我的资金控制器:
def new
@company = Company.find(params[:company_id])
@fund = @company.funds.build
end
def create
@company = Company.find(params[:company_id])
@fund = @company.funds.build(params[:fund])
if @fund.save
redirect_to company_fund_url(@company, @fund)
else
render :action => "new"
end
end
etc..
我的模型/company.rb:
class Company < ActiveRecord::Base
has_many :empnumbers
has_many :funds
end
我的模型/fund.rb:
class Fund < ActiveRecord::Base
belongs_to :company
end
我的路线.rb:
resources :companies do
resources :funds
end
谢谢你的帮助!!