代码之家  ›  专栏  ›  技术社区  ›  Tony

我应该在哪里为MVC体系结构创建一个指向用户配置文件页面的简短URL?

  •  3
  • Tony  · 技术社区  · 16 年前

    我有一个Rails应用程序,人们有一个个人资料页面- http://prettylongdomainname.com/profile_username

    要创建配置文件用户名,我在我的模型中使用一个before-create ar hook:

    before_create :generate_username
    
    def generate_username
        self.username = a_user_name_i_generated
    end
    

    我还想将一个简短的URL保存到用户的配置文件中,这样当他们共享内容时,我可以自动链接到他们的配置文件页面。我决定利用bit.ly的API来缩短URL,但我不太确定应该把代码放在哪里。

    在创建用户时,特别是在生成用户的配置文件\用户名后,保存缩短的URL是有意义的。但是,我需要发出一个HTTP请求到bit.ly的API来获取缩短的URL。

    有人知道最好的方法吗?

    谢谢!

    2 回复  |  直到 16 年前
        1
  •  3
  •   Ben Marini    16 年前

    我认为您使用回调的想法是正确的,但是我将创建一个观察者,这样就不会用对外部API的调用来污染用户类。这里是 more information about observers in rails .

        2
  •  1
  •   Marc L    16 年前

    假设您在初始生成之后不会更改任何用户的配置文件用户名,那么我同意Ben的建议。编写配置文件模型的观察者。注意一个配置文件对象的创建(读:初始保存),然后执行相应的缩短功能。

    然后,shorten方法可以覆盖对外部API的调用,并将新的URL添加到模型实例中。在模型代码本身中保持对缩短的URL的验证。

    推荐文章