0

我正在为视障人士创建我的 Rails 应用程序的一部分。这要求我只使用文本和链接来创建它,以便让使用语音阅读器的人更容易浏览。我想使用现有模型中的字段来动态构建 link_to 命令。我希望能够使用模型上包含用户单击的文本的多个字段和模型中包含链接的另一个字段来构建变量。

这是我的控制器中的代码:

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 命令上得到了can't convert String into Integer错误,其中显示的文本如下所示。发生这种情况时,单击链接时会出现其他错误。

#{audio_link["link_text"]}

我在 Stack Overflow 和整个网络上进行了很多搜索。我还没有在任何地方找到一个这样的例子。我在旧帖子中看到有 set_path 命令(2010),但最近的帖子没有。我用过 html_safe!之前并将其添加到我的代码中。我不知道我的代码是否有问题,或者我是否正在尝试一些不可能的事情。我真诚地希望这是可能的,因为它会让有语音阅读器的人更容易知道他们在点击什么。

对此的任何帮助将不胜感激。

4

1 回答 1

0

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

例如:

<%= link_to audio_link["link_text"], "#{audio_link['link']}"  %>
于 2013-01-23T21:23:07.400 回答