如何在轨道上显示一篇文章ruby的链接?

时间:2012-12-12 18:10:01

标签: ruby-on-rails

我正在尝试在我的主页上的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 

因为我现在有两篇文章...我理解它是因为每一篇文章都抓住所有文章并将其吐出我的观点但是我该怎么做以便它只显示一个特定的链接制品

3 个答案:

答案 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 %>