我有一個房東和一個房東公司的模型。我試圖在創建新的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」} –