Ruby on Rails 3如何显示来自数据库的信息

时间:2013-04-24 11:52:48

标签: ruby-on-rails activerecord activeview

我有一个数据库,我想通过按下按钮从中选择数据 运行$ rails c

1.9.2p290 :001 >Book.find_by_price("50")
# => #<Book id: 1, price: "50"><Book id: 2, price: "50"><Book id: 3, price: "50">

在控制台中,他找到了正确的信息,但是如何在视图中显示它? 我试着在控制器中编写一个方法。

books_controller.rb
class BooksController < ApplicationController
  def index
    @books = Book.all
    @metod = Book.find_by_price("50")
  end
 #...
end

然后,在视图中

view/books/index.html.erb
<%= link_to @metod %>

但它不起作用。请告诉我它是如何完成的?
我希望在单击视图中的按钮时显示这些数据。

2 个答案:

答案 0 :(得分:1)

您可以使用循环从@books

获取所有值
@books.each do |book|
  <%= book.name %>
  <%= book.price %>
end

@metod = Book.find_by_price("50")

@metod是一个实例变量,要访问它,你可以做@metod.price

答案 1 :(得分:0)

如果您使用ActiveRecord的动态查找器,find_by_price应该返回单个记录。但是在控制台输出中,它返回一个数组,所以我假设您在Book模型中手动创建了该方法。如果预期的输出是列出价格为50的所有书籍,请在视图中使用以下代码。

<% @metod.each do |book| %>
  <%= link_to book, book %>
<% end %>

此代码循环遍历@metod中的每本书,并显示指向其相应控制器的show操作的链接。