gpt4 book ai didi

ruby-on-rails - rails : how to create a list with conditional links

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:28 26 4
gpt4 key购买 nike

我正在开发一个 RAILS 应用程序,我在其中创建了一个 View ,其中列出了给定模型 species.rb 的所有可用资源。

部分 View 是:

<% i= @s
for species in @species %>
<%= species.name %>, <%= species.author.surname %> <%= species.author.initial_name %>
<% i -= 1
end %>

一些资源 species 有相关的文章,其他的只有名字。我想遍历部分内容并仅向具有相关文章的条目添加链接。

类似于:如果 species.article 存在则添加链接,否则只需放置 species.name 而不添加链接 + 循环遍历所有条目。

我该怎么做?

更新:

多亏了@jvillian 和@fool-dev,我才得以进步。在我的例子中,如果资源在其表的描述行中有描述,我想添加一个链接。

<% @species.each do |species| %>
<div class="entry">
<p><i><%= link_to_if(species.txtlandscape.present?, "#{species.name}, #{species.author.surname}, #{species.author.initial_name}. 2014", :controller => 'projects', :action => 'show', :id => species) %></i></p>
</div>
<% end %>

现在添加了一个链接,我想知道它是否可以用于将部分加载到目标,例如 in,其中 ArticleRequest 是我拥有的 JS 函数:

<% @ species.each do | species | %>
<div id="species-<%= species.id %>" class="species-entry">
<a onClick="ArticleRequest('/species/show/<%= species.id %>', 'species-<%= species.id %>');">
<p><%= species.name %></p>
</a>
</div>
<% end %>

在我找到使用 link_to_if 执行此操作的方法之前,我将使用如下内容:

<% for species in @species %>
<% if species.txtlandscape.present? %>
<a onClick="ArticleRequest('/species/show/<%= species.id %>', 'species-<%= species.id %>');">
<p><%= species.name %>, <%= species.author.surname %> <%= species.author.initial_name %></p>
</a>
<% else %>
<p><%= species.name %>, <%= species.author.surname %> <%= species.author.initial_name %></p>
<% end %>
<% end %>

最佳答案

根据docs ,看来你应该能够做到:

<% @species.each do |specie| %>
<%= link_to_if(specie.article, specie.name, specie_article_path(specie.article)) %>
<% end %>

路径名是我编的,你必须让它与你的实际路线相匹配。

顺便说一句,这个:

for species in @species 

super 不惯用语。

关于ruby-on-rails - rails : how to create a list with conditional links,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49458372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com