Model A has_many bs
Model B belongs_to a
admin-user可以生成新的条目,并且可以生成新的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
<h2><%=t("show")%></h2>
<p>
<strong><%=t("title")%></strong>
<%= @a.title %>
</p>
<p>
<strong><%=t("description")%></strong>
<%= @a.description %>
</p>
<p>
<strong><%=t("email")%>:</strong>
<%= @a.email %>
</p>
<h2><%=t("entries")%></h2>
<%= render @a.bs %>
<h2><%=t("addentry")%></h2>
<%= form_with(model: [ @a, @admin.bs.build ], local: true) do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %><br>
<%= f.text_area :description %>
</p>
<p>
<%= f.submit %>
</p>
将生成表单,但html-sourcecode不显示“admin-route-path”。但我该怎么做?
<form action="/as/1/bs" accept-charset="UTF-8" method="post"
我如何更改form_with部分,我可以从b中将条目添加到关联模型中?
答案 0 :(得分:1)
似乎您希望表单点击网址/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
的输出。
答案 1 :(得分:0)
要获取您正在寻找的路线,您需要拥有嵌套资源。你可以找到一个很好的解释here。
答案 2 :(得分:0)
我找到了相关模型的解决方案,它运行正常。谁能证实这一点。感谢
<%= form_with(model: [:admin, @a,B.new ], local: true) do |f| %>
<% end %>