Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails如何使用与管理命名空间关联的模型_Ruby On Rails_Ruby_Database_Web Development Server - Fatal编程技术网

Ruby on rails rails如何使用与管理命名空间关联的模型

Ruby on rails rails如何使用与管理命名空间关联的模型,ruby-on-rails,ruby,database,web-development-server,Ruby On Rails,Ruby,Database,Web Development Server,谢谢你,我可以在这里提问。我正在使用rails 5.1.4和ruby 2.5.0。 我有两种型号A型和B型 Model A has_many bs Model B belongs_to a 管理员用户可以生成新的a项,也可以生成新的b项。没有管理员用户可以显示、索引或保留 routes.rb 在app/views/admin/as/show.html.erb中,您可以看到a的DB条目的值。所以现在我的想法是认识到你可以用一个表单添加新的B条目。我试过这个show.html.er

谢谢你,我可以在这里提问。我正在使用rails 5.1.4和ruby 2.5.0。 我有两种型号A型和B型

    Model A has_many bs
    Model B belongs_to a
管理员用户可以生成新的a项,也可以生成新的b项。没有管理员用户可以显示、索引或保留

routes.rb

在app/views/admin/as/show.html.erb中,您可以看到a的DB条目的值。所以现在我的想法是认识到你可以用一个表单添加新的B条目。我试过这个show.html.erb

show.html.erb

将生成表单,但html源代码不显示管理路由路径。但是我该怎么做呢

   <form action="/as/1/bs" accept-charset="UTF-8" method="post"

我如何用part更改表单,以便从b向关联模型中添加条目?

似乎您希望表单点击url/admin/as/bs。 要生成指向命名空间控制器的链接,可以使用以下表单:

link_to [:admin, @a, @b], 'A admin show'
link_to admin_as_bs_path(@a, @b), 'A admin show'
这同样适用于表格

form_for [:admin, @a, @b] do ...
form_for @a, url: admin_as_bs_path(@a, @b)

路由辅助对象的名称可能错误。检查rake routes的输出。

要获得您正在寻找的路由,您需要有嵌套的资源。你可以找到一个很好的解释。

我找到了相关模型的解决方案,效果很好。谁能证实这一点。谢谢


请看一下。我在发布的表单中有一个错误。我的SC的这段代码是肯定的,我知道嵌套的属性,但我有一个错误,在我张贴的形式与。这段代码的SC不是@admin,而是我像getting starteg指南一样尝试过的。是的,我知道嵌套的\u属性\u的用途,但是我需要用什么来更改表单\u?可能重复的不是,表单\u的用途已被弃用。所以我用form_with尝试了它,但是我想点击form/admin/as/id/bs来创建一个新的BSI条目。如果你尝试一下指南,它工作得很好,但是没有admin名称空间。现在我找到了解决方案的下一步。我使用form_with,因为form_for已被弃用。这将构建url表单action=/admin/a/id accept charset=UTF-8 method=post>,但如何在url中获取bs。这是关于stackverflow的额外问题吗?
link_to [:admin, @a, @b], 'A admin show'
link_to admin_as_bs_path(@a, @b), 'A admin show'
form_for [:admin, @a, @b] do ...
form_for @a, url: admin_as_bs_path(@a, @b)