如何在Rails中显示模型的所有实例?

时间:2013-08-17 14:35:33

标签: ruby-on-rails ruby

在我的Web应用程序中,用户可以选择实体的某些实例。例如,在课程BubbleGum上,用户现在可以通过添加其标识符来选择BubbleGum的某些实例:

gums/details?show=3532667

现在,此外,我还希望能够显示所有BubbleGums。为此,我介绍了使用*来识别所有

的惯例
gums/details?show=*

到目前为止这很好用,但我经常需要添加一些代码来处理*选择。有没有一种很好的方法来表示Ruby和/或Rails中的 all-instances 对象?

我想过只使用一个专用符号,常量或类BubbleGum的实际对象来代表所有其他泡泡糖。

2 个答案:

答案 0 :(得分:1)

要显示rails应用程序中的所有实体,我们通常使用索引页面。

bubble_gums_controller.rb

def index
  @bubble_gums = BubbleGum.all
end

视图/ bubble_gums / index.html.erb

<% @bubble_gums.each do |bubble_gum| %>
  <tr>
    <td><%= bubble_gum.name %></td>
    <td><%= bubble_gum.price %></td>
  </tr>
<% end %>

有关详细信息,请参阅此处。

http://guides.rubyonrails.org/getting_started.html#listing-all-posts

答案 1 :(得分:1)

我认为你想使用查询字符串param show。 所以,你可以试试你的牙龈控制器:

def details
    if params[:show] == "*"
        @bubble_gums = BubbleGum.all 
        # ...
    elsif params[:show]
        @bubble_gum = BubbleGum.find(params[:show]) 
        # ...
    else 
        render :status => 404
    end
end