目前我已经解决了这个问题。虽然,不是我喜欢的方式:
我将通过描述我如何将一个地区添加到一个州来解释这一点,因为那是更复杂的一个。
State - show.html.erb(仅限新路径代码)将 GET 参数设置为 state 的 id 和 country_id,最好我想以其他方式发送它们,但我需要同时发送它们。
<td colspan=4>
<%=
link_to 'New District',
new_district_path(
:country_id => @state.country_id,
:state_id => @state.id
)
%>
</td>
District - new.html.erb(将 country_id 和 state_id 设置为实例值或传递的参数......我想使用 POST 来发送这些参数)
<h1>New district</h1>
<%
@district.country_id = @district.country_id || params[:country_id] || ""
@district.state_id = @district.state_id || params[:state_id] || ""
%>
<%= render 'form' %>
<%= link_to 'Back', state_path(params[:state_id]) %>
区 - _form.html.erb
<%= form_for(@district) do |f| %>
<% if @district.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@district.errors.count, "error") %> prohibited this district from being saved:</h2>
<ul>
<% @district.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :country_id %><br>
<%= f.number_field :country_id %>
</div>
<div class="field">
<%= f.label :state_id %><br>
<%= f.number_field :state_id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>