以宁静的方式处理配置文件创建

时间:2012-03-20 18:00:00

标签: ruby-on-rails ruby-on-rails-3 rest

我一直在考虑创建配置文件生成功能的最佳方法是什么,RESTwise。

我的想法是,我的菜单总是有一个指向用户个人资料的链接,无论是否生成。但是,用户必须在第一时间生成配置文件,然后才会向其显示。

为了说明,一旦用户第一次创建配置文件,就会有一个指向'/ profiles / new'的菜单项并动态更改为'profile /:id'。这似乎很自然,但我不喜欢我必须在我的应用程序控制器中获取@profile实例变量(因为每次都必须检查它,以动态生成链接)。

另一个想法是重定向发生,可能是两者中最好的。用户单击/ profiles / new路径(或别名)并被重定向到'profile /:id',如果他们确实已经设置了配置文件。

您认为最好的方法是什么,还有另一种我没有想到的替代方案吗?

2 个答案:

答案 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。在这种情况下,用户将始终拥有默认配置文件。