我是Rails及其全REST概念的新手。
我希望用户在注册后填写简短表格(他们的个人资料信息)
不幸的是,/users/edit
REST URL已包含密码修改对话框
我不希望初始的短格式包含这个密码修改对话框,这将是非常令人困惑的。
我应该使用什么网址?如何路线?
注意:我正在使用Devise进行身份验证。
答案 0 :(得分:0)
我想到的第一个答案可能不是最好的选择,但它应该让你开始走上正确的道路。
当用户注册时,在您的用户/创建操作中执行以下操作:
redirect_to edit_user_url(@user, :survey => "1") and return
然后在您的用户/编辑操作中执行以下操作:
if params[:survey] == "1"
render :action => "survey" and return
end
在您的views / users文件夹中,确保您有survey.html.erb或short_form.html.erb或您想要的任何内容。把你的表格放在那里。如果要编辑用户,那么让它像标准编辑表单一样工作,但只是省略密码等等。
通过这种方式,您可以链接到调查(或简短形式,无论如何),但只会在创建帐户时显示。
如果您想要显示编辑用户视图但只想省略一个选项(密码字段),那么您可能需要考虑使用以下命令链接到编辑操作:new_user => “1”就像我上面做的那样然后在该参数的视图测试中,如果它没有显示密码字段但是如果没有显示它。这可能也不是最好的主意,但如果你只需要一个或几个字段就不会出现,那么这就是我倾向于做的事情,否则就会有相同的形式。有些人认为观点中的条件陈述是粗鲁的,但如果做得很少,我认为这很好。
如果您要做的事情是完全不相关的操作,那么与编辑用户完全无关的事情就是您要为模型添加新的RESTful操作。查看http://guides.rubyonrails.org/routing.html,尤其是标题为“2.9添加更多RESTful操作”的部分。