我正在尝试在我的主页上的rails应用程序中显示指向一篇文章的链接
这是html代码:
<% @articles.each do |article| %>
<%= link_to 'Show', article %>
<% end %>
这是我的控制器:
class StaticPagesController < ApplicationController
def home
@user = current_user
@articles = Article.all
end
def comics
end
end
它出现在我的主页上,但它显示为这样
show show
因为我现在有两篇文章...我理解它是因为每一篇文章都抓住所有文章并将其吐出我的观点但是我该怎么做以便它只显示一个特定的链接制品
答案 0 :(得分:2)
link_to
使用由这组选项创建的网址创建给定名称的链接标记。因此,如果您将代码更改为如此,只要该文章响应名为title的方法返回字符串:
<% @articles.each do |article| %>
<%= link_to article.title, article %>
<% end %>
但是,article.title
只是一个例子,如果文章没有title
方法,则完全没问题。您可以使用任何字符串来帮助您识别不同的链接。
阅读API docs了解更多选项。
如果您想显示特定文章的一个链接,那么您可以在控制器中执行以下操作:
@article = Article.find(params[:article_id])
其中article_id
作为参数。
答案 1 :(得分:1)
您的意思是显示单个记录而不是所有文章?
如果是这样,只需从控制器返回一个。
def home
.....
@article = Article.first
end
然后只是link_to 'show', @article
您可以将Article.first替换为您要限制显示的特定文章
答案 2 :(得分:1)
如果要显示特定文章,则需要在控制器中定义包含特定文章的实例变量,而不是所有文章(Article.all
)
@article = Article.first
或
@article = Article.find(id) # where id is the id of a specific article
然后,在您看来,而不是每个块,只需
<%= link_to 'Show', @article %>