我正在为视障人士创建我的 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命令上出现无法将字符串转换为整数错误,如下所示。 发生这种情况时,单击链接时会出现其他错误。
#{audio_link["link_text"]}
我在Stack Overflow和整个网络上做了很多搜索。 我在任何地方都没有找到这样做的一个例子。 我在较旧的帖子中看到过set_path命令(2010 年),但最近的帖子没有。 我用过html_safe!之前,并将其添加到我的代码中。 我不知道我的代码是否有问题,或者我是否正在尝试不可能的事情。 我真诚地希望这是可能的,因为它将使有语音阅读器的人更容易知道他们在点击什么。
任何这方面的帮助将不胜感激。
不能在单引号中进行字符串内插。 将单引号替换为双引号,您的变量将正确扩展。
例如:
<%= link_to audio_link["link_text"], "#{audio_link['link']}" %>