我已经在Rails 3中使用了RESTful User模型。我想根据从LDAP服务器查询的信息添加一个新选项来创建新用户。
我喜欢的建议是如何最好地做到这一点。这是我到目前为止所想到的,但我不知道它是否符合Rails最佳实践:
编辑User的资源路径以接受GET和POST到名为" import_ldap_user"的新视图。
导入LDAP用户然后呈现一个使用AJAX(POST到import_ldap_user)的表单,以允许访问者在LDAP中搜索人员。结果显示在页面上,如果可以接受,用户点击"创建"然后调用/ user / create。
为什么这对我来说很糟糕的部分原因是:
有什么想法吗?任何Rails完美主义者都对如何运作有意见吗?
答案 0 :(得分:2)
发布到/ user / create的内容不是@user对象,而是其属性。一个脚手架创建动作可能会有类似于@user.new(params[:user])
的东西,它只会拉出已发布的用户属性并基于此创建一个新对象。
即使您的AJAX调用没有以new
方法处理的方式提供属性,您也可以简单地修改create
以便操作帖子数据。
至于最佳实践,这绝对是我过去曾想过的,但我不知道是否有“正确”的答案。我认为有一个新的视图发布到create
方法是完全可以接受的,如果你想严格遵循CRUD模式,你也可以创建一个新的控制器。
绝对是个好问题,如果有人有更好的答案,我很乐意听到。