Ruby on rails 如何在rails中构造没有id的资源路径? class A:A,:action=>:step2,:as=>:A_step2

Ruby on rails 如何在rails中构造没有id的资源路径? class A:A,:action=>:step2,:as=>:A_step2,ruby-on-rails,ruby-on-rails-3.2,rails-routing,Ruby On Rails,Ruby On Rails 3.2,Rails Routing,步骤1呈现此表单 class A < ApplicationController def step1 @b = B.new end def step2 end end url\u路径\u至\u控制器\u A\u步骤2\u和\u包含提交此表单后创建的\u资源\u b\u的\u id\u 在提交此表单后,我如何生成url\u路径\u到\u控制器\u A\u步骤2\u和\u包含\u资源\u b\u创建的\u id\u,而不知道“待创建”资源b的id 在my rout

步骤1呈现此表单

class A < ApplicationController
  def step1
   @b = B.new
  end

  def step2
  end
end

url\u路径\u至\u控制器\u A\u步骤2\u和\u包含提交此表单后创建的\u资源\u b\u的\u id\u
在提交此表单后,我如何生成url\u路径\u到\u控制器\u A\u步骤2\u和\u包含\u资源\u b\u创建的\u id\u,而不知道“待创建”资源b的id

在my routes.rb文件中:

获取“A/:b_id/step2”,:controller=>:A,:action=>:step2,:as=>:A_step2


我相信我不是第一个遇到这个问题的人,但是通过谷歌和这里的搜索并没有给出相关的结果。

不清楚通过在隐藏字段中设置重定向链接可以实现什么目的。提交表单时,表单将向某些控制器操作发送数据,此操作将保存资源
b
,并将知道其id。您可以
从操作重定向到
。它使控制器和操作松散耦合。通过让控制器A的操作告诉控制器B的操作在完成后重定向到何处,我还可以让另一个控制器C做同样的事情-包括一个带有重定向参数的隐藏字段,该参数告诉它在创建/保存后要转到何处。控制器A和控制器B对隐藏字段彼此一无所知…除了B知道有一个必须遵守的重定向参数
<%= form_for @b do |f| %>
  <%= f.hidden_field :redirect_to=> url_path_to_controller_A_step2_and_include_id_of_resource_b_created_after_submitting_this_form
<% end %>