rails如何将Associated Model与admin命名空间一起使用
谢谢,我可以在这里提问。 我正在使用rails 5.1.4和ruby 2.5.0。 我有两个模型A和模型B.
Model A has_many bs Model B belongs_to a
admin-user可以生成新的a条目,并且可以生成新的b条目。 no-admin-user可以显示,索引或保留。
的routes.rb
resources :as, only: [:index, :show] do resources :bs, only: [:index, :show, :reserve] end namespace :admin do resources :as, only: [:create, :edit, :update, :destroy, :show] do member do post :activate get :activate post :deactivate get :deactivate end resources :bs, only: [:create, :edit, :update, :destroy, :show] end end
在app/views/admin/as/show.html.erb
您可以看到a的DB Entry的值。 所以现在我的想法是要意识到你可以用表格添加b的新B条目。 我试过这个show.html.erb
show.html.erb
:
将生成表单,但html-sourcecode不显示“admin-route-path”。 但我怎么这样?
<form action="/as/1/bs" accept-charset="UTF-8" method="post"
我如何更改form_with部分,我可以从b添加条目到相关模型?
似乎你希望你的表单达到url /admin/as/bs
。 要构建指向命名空间控制器的链接,您可以使用以下forms:
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
的输出。
要获得您正在寻找的路线,您需要拥有嵌套资源。 你可以在这里找到一个很好的解释。
我找到了相关模型的解决方案,它工作正常。 谁能证实这一点。 谢谢
<%= form_with(model: [:admin, @a,B.new ], local: true) do |f| %> <% end %>