Ruby on rails 将Rails表单_路由到自定义控制器的语法

Ruby on rails 将Rails表单_路由到自定义控制器的语法,ruby-on-rails,controller,form-for,Ruby On Rails,Controller,Form For,尝试过论坛、文档和博客建议。它们集中在语法上,对我来说,这些语法不能正确地保存并通过所需的控制器进行路由 总而言之,我有两个共享功能的软件应用程序。为了实现共享功能,我让Rails生成shared::Widgets。这个MVC工作得很好。使用标准的共享/小部件等路由查看、更新、创建或删除没有问题 然后,对于特定于产品的功能,我创建了两个控制器:Product1::Widgets和Product2::Widgets。两者都继承自Shared::Widgets控制器。除了特定于产品的布局之外,这两个

尝试过论坛、文档和博客建议。它们集中在语法上,对我来说,这些语法不能正确地保存并通过所需的控制器进行路由

总而言之,我有两个共享功能的软件应用程序。为了实现共享功能,我让Rails生成shared::Widgets。这个MVC工作得很好。使用标准的共享/小部件等路由查看、更新、创建或删除没有问题

然后,对于特定于产品的功能,我创建了两个控制器:Product1::Widgets和Product2::Widgets。两者都继承自Shared::Widgets控制器。除了特定于产品的布局之外,这两个都是空的

这项计划几乎奏效。当我路由到product1/widgets时,它将布局设置为product1并调用shared/widgets的index方法。结果是显示带有product1布局的shared/widgets/index.html.erb。类似地,当我路由到product2/widgets时,这将设置product2布局并调用shared/widgets的index方法。结果是显示带有product2布局的共享/widgets/index.html.erb。太好了

但现在我们来看看你的表格。因为它实现了rails的魔力,所以它确实希望直接路由到Shared::Widgets控制器。但那不是我想要的。我想让它路由到适当的产品控制器,以便设置布局。生成表单_的rails如下所示:

form_for(@shared_widget, :html => { :class => "form"}) do |f|
我试过:

form_for([:product1, @widget], :html => { :class => "form"}) do |f| 
但这重复了名称空间(product1\u widget\u共享的\u widget\u路径)

我尝试了以下三种格式,所有这些格式似乎都正确路由,并保存了记录,但记录为空(列为空):

有什么帮助吗?如果上面的代码有拼写错误,那是由于转录造成的。我使用的实际代码通过了解释器。谢谢。

试试这个

form_for(url: { controller: "posts", action: "create" }, html => { :class => "form" }, method: "post") do |f| 

应该是:我想是html
form_for(url: { controller: "posts", action: "create" }, html => { :class => "form" }, method: "post") do |f|