2012-03-17 55 views
1

我有多个社交网站的字段,用户可以输入他们的用户名,并链接到他们的twitter,facebook,myspace账户等。我的问题是我怎么能拥有它,所以当用户输入用户名时,我可以链接到他们的用户名帐户。url的帮手方法?

这是我的,我知道这可能是不正确的。在我的个人资料的index.html

<%= link_to twitter_url %> 

轮廓helper方法

def twitter_url 
    return(self.url= "http://twitter.com/#{profile.twitter}/account") 
end 

在我的个人资料控制器

include ProfilesHelper 

在数据库中的实际字段称为

twitter_link 

如何我明白了用户名然后在我的部分,这将做其余的链接到他们的twitter,facebook等帐户页面?

回答

4

该方法应该如何知道profile对象是不是你传入的?

我想象你的控制器中定义了一个@profile变量。在视图中,你会这样:

<%= link_to twitter_url %> 

而在帮手,这一点:

def twitter_url 
    "http://twitter.com/#{@profile.twitter_link}/account" 
end 

这里需要注意的是,你并不需要设置self.url或有明确的回报。这是因为该方法会自动返回String,这是link_to需要的。

如果你想要这个方法是在一个帮手,在只是的可用你的ProfileController,那么为什么不把它里面ProfileHelper以便它只是由名字被相关自动纳入?

+0

我得到了'未定义的方法对Twitter的零:NilClass' – coletrain 2012-03-17 15:59:02

+0

@coletrain,上述解决方案应该是工作,可以ü发布完整的堆栈跟踪定位错误 – sameera207 2012-03-17 17:23:49

+0

我已经添加了完整的跟踪上述代码 – coletrain 2012-03-17 18:56:48