在我的rails应用中,我有user has_one :profile
和profile belongs_to :user
关联。如果用户已有个人资料并转到user/:user_id/profile/new
页面并提交新的个人资料,则旧的个人资料会更新。
我可以使用pundit(授权gem)来防止这种情况,并且只授权没有配置文件的用户能够触发新的操作并创建操作。我想知道在这种情况下轨道惯例是什么。我想应该有一个更简单的解决方案。
答案 0 :(得分:1)
这是rails惯例。当您在创建和更新时打开相同的表单时,如果profile.id
是nil
表单操作将转到Profile#create
,如果profile.id
不是nil
,它将会使用参数中的Profile#update
转到profile.id
操作。