У меня есть три модели - компания, пользователь (с помощью разработки) & Donation.Donation - это богатое соединение между компанией и пользователем, используя: через. У меня есть частичная форма для создания нового пожертвования внутри представления представления компании, которая берет три атрибута - 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>
Как пройти 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
Спасибо ..... Это решило проблему !!! .... Я на самом деле думал, что мне нужно что-то делать в контроллерах ... но оказалось, что это взгляд. Очень простое и элегантное решение! !! –
@HemantJain Примите ответ :) – Pavan