我有以下关联设置
class Donation < ActiveRecord::Base
belongs_to :campaign
end
class Campaign < ActiveRecord::Base
has_many :donations
end
在我的捐赠控制器中,我将campaign_id作为一个强大的参数。现在,在创建捐赠时,我希望将campaign_id保存在该表单中,但最好在控制器的某个地方,我猜测不太容易被编辑。要从广告系列转到捐赠表单,我点击一个按钮
<%= link_to 'Donate', new_donation_path, class: 'big-button green' %>
因为我们已经在使用
def show
@campaign = Campaign.find(params[:id])
end
我怎样才能将这个身份证明纳入我的捐款表格?
由于
答案 0 :(得分:1)
听起来你正在寻找Nested Resources。
基本上,您的 routes.rb 可能类似于:
resources :campaigns do
resources :donations
end
您的控制器可能如下所示:
class DonationsController < ApplicationController
before_action :find_campaign
def new
@donation = @campaign.donations.build
end
def create
@donation = @campaign.donations.create(params[:donation])
# ...
end
protected
def find_campaign
@campaign ||= Campaign.find(params[:campaign_id])
end
end
您的示例链接,类似于......
<%= link_to 'Donate', new_campaign_donation_path(@campaign), class: 'big-button green' %>