如何将link_to放在rails中的字符串中

在这里,我发现类似的问题Rails 3 link_to在一个字符串内但不知何故它不适用于我的场景。

我有一个@matter对象,其下面有url。

 @matter = url_for(:controller => 'news', :action => 'news_view',:id => @news.token) 

我试图把这个链接放在文本中,这可以通过简单地添加“#{@ matter}”来完成。 但是我想把整个链接的别名设置为’VIEW NEWS’,当用户点击它时,它会重定向到原始url。

使用这个我必须发送到我的链接邮件和移动文本。 我得到它的电子邮件,但无法发送文本,因为:body需要字符串格式的消息API。

我已经按照上面提到的SOpost,但它们根本不适合我。

"\"#{@news.sender.first_name} #{@news.sender.last_name} just sent you a invite.\" Click on link raw('') ")

如果可能的话,我可以在<a href ="#{@matter}", view invite 等字符串中使用html。

需要帮助。

我正在使用twilio使用以下API发送文本。

  @client = Twilio::REST::Client.new @account_sid, @auth_token @client.account.messages.create(:from => '+123456789', :to => '+1'+@phone, :body => "#{@matter}" ) 

您可以执行以下操作:

 "#{@news.sender.first_name} #{@news.sender.first_name} just sent you an invite." "Click on link to #{link_to 'View invite', @matter}".html_safe 

如果在控制器中使用,则可以访问view_context

 def show # ... @message = "#{@news.sender.first_name} #{@news.sender.first_name} just sent you an invite." @message << "Click on link to #{view_context.link_to 'View invite', @matter}" @client = Twilio::REST::Client.new @account_sid, @auth_token @client.account.messages.create(:from => '+123456789', :to => '+1'+@phone, :body => @message.html_safe ) end 

由于隐私问题,我们似乎无法在短信中包含超链接。 这篇文章说如此在iPhone中的短信中创建超链接 。 这就是为什么虽然我尝试了MrYoshiji的答案,但我并没有像我想的那样正确地获得文本。