我有父母"帐户"有很多"优先事项。"
我可以非常轻松地为这些帐户创建新的优先级,但我无法在创建后对其进行编辑/更新。
帐户模型(父母):
class Account < ApplicationRecord
has_many :priorities
accepts_nested_attributes_for :priorities
end
优先级模型(孩子):
class Priority < ApplicationRecord
belongs_to :account
end
路线:
resources :accounts do
resources :priorities
end
priorities_controller.rb(只是编辑,更新和参数)
class PrioritiesController < ApplicationController
def edit
@account = Account.find(params[:account_id])
@priority = @account.priorities.find(params[:id])
end
def update
@account = Account.find(params[:account_id])
@priority = @account.priorities.update(priority_params)
end
private
def priority_params
params.require(:priority).permit(:name, :narrative, :kpis)
end
end
最后,我的edit.html.erb(所以这最终成为帐户/#/ priorities /#/ edit)
<%= form_for(@account) do |a| %>
<%= a.fields_for :priorities, @priority do |p| %>
<p>
<%= p.label :name %><br>
<%= p.text_field :name %>
</p>
<p>
<%= p.label :narrative %><br>
<%= p.text_area :narrative %>
</p>
<p>
<%= p.label :kpis, "KPIs" %><br>
<%= p.text_field :kpis %>
</p>
<p>
<%= p.submit %>
</p>
<% end %>
<% end %>
到目前为止,一切都很顺利。表单完美地获取正确优先级的表单数据,如果您尝试输入与该帐户ID无关的优先级ID,它甚至会失败。但是,当我点击&#34;更新优先级&#34;我明白了:
&#34;行动&#39;更新&#39;找不到AccountsController&#34;
现在,我可以跟踪错误并为此控制器创建更新,但我认为它甚至不应该尝试触发AccountsController,似乎应该尝试使用优先级控制器。
确实如果我检查控制台,请求似乎在这里: 请求网址:angular-schema-form-dynamic-select
对不起,我已经搜索了至少10个小时来回答这个问题并且无法找到它。谢谢你的帮助。