2013-01-23 47 views
0

我正在为视障人士创建一段Rails应用程序。这就要求我仅使用文本和链接创建它,以便让使用语音阅读器的人更容易浏览。我想使用现有模型中的字段来动态构建link_to命令。我希望能够使用包含用户点击的文本的模型上的几个字段以及包含该链接的模型中的另一个字段来构建变量。是否可以使用变量来构建link_to命令? (Rails 3.2.11)

这里是我的控制器代码:

MediaLibrary.find(:all, conditions: ["media_type_id < ?", 3], limit: 5).each do |media_item| 
    @audio_links["link_text"] = "Audio of #{MediaCreator.find(media_item.media_creator_id).name} #{media_item.media_created.to_time.strftime('%A, %B %d, %Y')} at #{media_item.meeting_time} 
    #{media_item.am_pm} - #{media_item.name}" 
    @audio_links["link"] = media_item.link 
end 

这里是我的看法代码:

<% @audio_links.each do |audio_link| %> 
    <li> 
    <%= link_to audio_link["link_text"], '#{audio_link["link"]}' %> 
    </li> 
<% end %> 

我也曾尝试以下操作:

<% @audio_links.each do |audio_link| %> 
    <li> 
    <%= link_to 'audio_link["link_text"]', '#{audio_link["link"]}' %> 
    </li> 
<% end %> 

这:

<% @audio_links.each do |audio_link| %> 
    <li> 
    <%= link_to '#{audio_link["link_text"]}', '#{audio_link["link"]}' %> 
    </li> 
<% end %> 

我尝试了几个更改,但我试图显示屏幕或链接显示时显示的文本如下所示,但我要么无法将字符串转换为整数错误link_to命令。发生这种情况时,我点击链接时会出现其他错误。

#{audio_link["link_text"]} 

我已经做了大量的堆栈溢出和整个网络搜索。我还没有发现任何一个这样的例子。我在旧的帖子中看到有一个set_path命令(2010),但没有用于最近的帖子。我已经使用html_safe!之前,并将其添加到我的代码。我不知道我的代码是否有问题,或者我是否尝试了一些不可能的事情。我真诚地希望这是可能的,因为它可以让讲话读者更容易知道他们点击了什么。

任何帮助,这将不胜感激。

回答

0

你不能在单引号中做字符串插值。用双引号替换单引号,你的变量将被正确地扩展。

例如:

<%= link_to audio_link["link_text"], "#{audio_link['link']}" %> 
+0

我做你的建议的改变。随着我的视图代码稍作修改,我就能够获得动态链接的工作。我仍然有一个小问题来纠正,但我正在路上。非常感谢您的投入。这是我的一个疏忽。 –

相关问题