如何解决如何使用嵌套资源编写 simple_form_for 块?
我一直在为 Rails 道路苦苦挣扎,所以这就是我现在所拥有的。出于某种原因,它适用于编辑操作,但不适用于新操作。
路线
resources :distributors do
resources :user_distributors,as: :users
resources :distributor_brands,as: :brands
end
表单声明:
= simple_form_for @user_distributor,url: distributor_user_path(@distributor,@user_distributor),wrapper: :vertical_input_group do |f|
edit_distributor_user_path(@distributor,user_distributor))
new_distributor_user_path(@distributor)
相反,表单声明失败并出现以下错误:
No route matches {:action=>"show",:controller=>"user_distributors",
这是因为 @user_distributor
变量没有 id 值,这就是它尝试路由到 show 操作的原因。
如何对该声明进行编码,以便该表单同时适用于 new
和 edit
操作?
我通过在操作中设置 url 暂时解决了这个问题,这确实有效,但感觉这里缺少自动功能。
解决方法
当您像我上面那样尝试重命名路由时会出现此问题。当我回到丑陋的路线名称时,一切都按照默认格式进行:
= simple_form_for [@distributor,@user_distributor]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。