我一直在考虑创建配置文件生成功能的最佳方法是什么,RESTwise。
我的想法是,我的菜单总是有一个指向用户个人资料的链接,无论是否生成。但是,用户必须在第一时间生成配置文件,然后才会向其显示。
为了说明,一旦用户第一次创建配置文件,就会有一个指向'/ profiles / new'的菜单项并动态更改为'profile /:id'。这似乎很自然,但我不喜欢我必须在我的应用程序控制器中获取@profile实例变量(因为每次都必须检查它,以动态生成链接)。
另一个想法是重定向发生,可能是两者中最好的。用户单击/ profiles / new路径(或别名)并被重定向到'profile /:id',如果他们确实已经设置了配置文件。
您认为最好的方法是什么,还有另一种我没有想到的替代方案吗?
答案 0 :(得分:1)
重定向对我来说没有多大意义,RESTwise,因为它在/profile/new
引入了一个含糊不清的资源,但我认为你不一定每次都需要@profile
。假设user_signed_in?
是一个帮助确认用户(current_user
)实际上是已登录的帮助程序,您可以在应用程序帮助程序目录中创建一个类似于此的链接助手:
def link_to_user_profile(html = {})
if user_signed_in?
@profile = current_user.profile
link = profile_path(@profile)
text = 'Your Profile'
else
link = new_profile_path
text = 'Create a Profile'
end
link_to text, link, html
end
我正在制作各种变量,但希望这会有所帮助!
答案 1 :(得分:0)
您还可以考虑为具有默认值的用户构建新的个人资料after_create
。在这种情况下,用户将始终拥有默认配置文件。