Form_for嵌套资源权限(Y模型)
可以真正使用你的帮助,了解这个复杂的轨道问题我一直在敲打墙上…
我有以下型号:
Permissions (user_id, role_id, project_id) Roles (id, name) Projects (id, name)
权限是角色和项目的Y模型。
我正在努力制作一个表单,允许用户添加或更新用户的项目权限
在控制器中我有:
@project = Space.find(params[:project_id]) @permission = @project.permissions.find_by_user_id(params[:user_id])
然后在视图中:
....
但这不起作用,错误:
-
如果(用户和项目)的条件在DB中没有任何记录:“NilClass的未定义方法`model_name’:Class”
-
如果数据库中有记录,意味着用户确实在该项目中有角色:
"No route matches {:action=>"destroy", :controller=>"permissions", :project_id=>#}"
理想情况下,我希望此表单显示当前权限(如果有)给定(Used / Project)…如果没有当前权限,我希望该人能够创建记录。
任何人都可以在Rails 3中体验这种关系吗? 感谢您提供的任何建议。
路由文件(特定于这些模型的部分)
resources :projects do resources :photos, :permissions collection do get 'yourcurrentprojects' end end
控制器 – 用户可以选择CRUD权限的路径: /projects/3/permissions
– 我相信我想使用Permissions.rb def Show和def Update来获取和设置权限?
对于你有一个nil对象的第一个错误你应该传入一个空白对象,无论你将对象传递给表单,例如@permission ||= @project.permissions.new
(假设它是导致nil对象的权限对象。或者更加高兴@project.permissions.find_or_initialize_by_user_id(params[:user_id])
。
对于第二个错误,奇怪的是它正在尝试映射到destroy,它应该尝试映射到:update action对吗? 运行rake routes
以查看应用程序中的所有路由以validationPUT / projects /:project_id / permissions /:id操作是否存在并映射到权限#update
- gem安装pg for ruby on rails
- 连接到S3时,获取“SSL_connect返回= 1 errno = 0状态=错误:证书validation失败”
- 奇怪的舍入问题
- 如何validation模型中的多个电子邮件地址?
- 使用rails3-autocomplete-jquery gem可以很好地处理带有多个输入的Simple_Form
- Rails ActiveStorage错误 – MessageVerifier-InvalidSignature
- git错误“请告诉我你是谁。”和Heroku
- PG :: UndefinedTable:错误:关系“…”不存在
- 如何最好地将地址与rails中的多个模型相关联?