我有一个房东和一个房东公司的模型。我试图在创建新的landlord_company后,将landlord_id传递给landlord_company表。我在landlord_company窗体中有一个f.hidden_field,但它不起作用。不在另一个表中保存唯一的ID - Rails 4
地主模式:
has_many :landlord_companies
landlord_company模型:
belongs_to :landlord
landlord_company控制器:
def new
@landlord_company = LandlordCompany.new
end
def create
@landlord_company = LandlordCompany.new(landlord_company_params)
@landlord = Landlord.find(params[:landlord_id])
respond_to do |format|
if @landlord_company.save
format.html { redirect_to @landlord_company, notice: 'Landlord company was successfully created.' }
format.json { render :show, status: :created, location: @landlord_company }
else
format.html { render :new }
format.json { render json: @landlord_company.errors, status: :unprocessable_entity }
end
end
end
landlord_company形式:
<div class="feedback-container">
<%= form_for @landlord_company, url: {action: "create"}, html: {class: "new.html.erb"} do |f| %>
<% if @landlord_company.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@landlord_company.errors.count, "error") %> prohibited this landlord_company from being saved:</h2>
<ul>
<% @landlord_company.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :llc_name, class: "general-text-label" %><br>
<%= f.text_field :llc_name, class: "general-text-field" %>
</div>
<div class="field">
<%= f.hidden_field :landlord_id, :value => params[:landlord_id] %>
</div><br>
<div class="actions">
<%= f.submit "Submit", class: "btn btn-black btn-4x" %>
</div>
<% end %>
</div>
的routes.rb:
resources :landlords do
member do
resources :landlord_companies
end
end
在您的创建操作中,添加以下行:puts params.inspect并向我们显示控制台的输出。这可能是因为楼主标识没有发送到新的操作,因此无 – bkunzi01
@ bkunzi01这是puts.params输出。 { “UTF8”=> “✓”, “authenticity_token”=> “3F/ZM/SbXO/0dCsQkTtYPh4HaDwk1f3HAJ77NpLNMw2FHMt0fXt2QxEpnoTbmSSnmQUfwmuPsrAAKl/meieDEA ==”, “landlord_company”=> { “llc_name”=> “2”, “landlord_id”= >“”},“commit”=>“Submit”,“controller”=>“landlord_companies”,“action”=>“create”,“id”=>“21”} –