在另一个视图中使用部分时传递属性
Passing attributes while using a partial inside another view
我有三个模型——公司、用户(使用 Devise)& Donation.Donation 是公司和用户之间使用 :through 的富连接。
我有一个用于在公司的显示视图中创建新捐赠的部分表格,它具有三个属性 - company_id、user_id 和金额。
view里面的form代码如下:
<%= 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
您可以在 form
中为 user_id
和 company_id
使用 hidden_field
f.input :user_id, :as => :hidden, :input_html => { :value => current_user.id }
f.input :company_id, :as => :hidden, :input_html => { :value => @company.id }
您需要在 companies_controller
show 方法中定义 @company = Company.find(params[:id])
我有三个模型——公司、用户(使用 Devise)& Donation.Donation 是公司和用户之间使用 :through 的富连接。 我有一个用于在公司的显示视图中创建新捐赠的部分表格,它具有三个属性 - company_id、user_id 和金额。 view里面的form代码如下:
<%= 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
您可以在 form
中为 user_id
和 company_id
hidden_field
f.input :user_id, :as => :hidden, :input_html => { :value => current_user.id }
f.input :company_id, :as => :hidden, :input_html => { :value => @company.id }
您需要在 companies_controller
show 方法中定义 @company = Company.find(params[:id])