我有三个型号 - 公司,用户(使用设计)&捐赠.Donation是公司和用户之间的丰富联接,使用:through。 我有一个部分表格,用于在公司的展示视图中创建一个新的捐赠,它有三个属性 - company_id,user_id和金额。 视图中表单的代码如下:
<%= simple_form_for @donation do |f| %>
<div class="row">
<div class="container">
<div class="col-sm-6">
<div class="well">
<h1 align="center" class="amountHead">Donate</h1>
<form class="form-inline donate-form">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">₹</div>
<%= f.input :amount, label: false, placeholder: 'Amount in Rupees' %>
<div class="input-group-addon">.00</div>
</div>
</div>
<div class="actions" style="text-align: center">
<%= f.submit :class => 'btn btn-success' %>
</div>
</form>
</div>
</div>
当用户输入金额时,如何使用当前用户的ID和他们正在查看的公司的ID来传递user_id和company_id。
donation_controller.rb
class DonationsController < ApplicationController
def index
@donations = Donation.all
end
def new
@donation = Donation.new()
end
def create
@donation = Donation.new(donation_params)
respond_to do |format|
if @donation.save
format.html { redirect_to @donation, notice: 'Donation was successfully created.' }
format.json { render :show, status: :created, location: @donation }
else
format.html { render :new }
format.json { render json: @donation.errors, status: :unprocessable_entity }
end
end
end
def donation_params
params.require(:donation).permit(:amount,:user_id,:company_id)
end
end
company_controller.rb
def show
@donation = Donation.new
end
答案 0 :(得分:1)
您可以hidden_field
使用form
user_id
和company_id
f.input :user_id, :as => :hidden, :input_html => { :value => current_user.id }
f.input :company_id, :as => :hidden, :input_html => { :value => @company.id }
您需要在@company = Company.find(params[:id])
show 方法中定义companies_controller
。