是否可以使用变量来构建link_to命令?(轨道 3.2.11)



我正在为视障人士创建我的 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']}"  %>

相关内容

  • 没有找到相关文章

最新更新