在rails中创建类别页面

时间:2014-04-19 23:05:43

标签: ruby-on-rails ruby

我制作了一个照片共享应用程序,可让用户注册和发布照片。但所有这些图片最终都出现在主页上。相反,我希望人们选择不同的类别来发布他们的照片,具体取决于它的含义。因此,我决定使用按钮创建一个类别html页面,将您重定向到下面显示的类别。

enter image description here

所以我制作了html页面并添加了按钮,这就是我对下一步该做什么几乎无能为力的地方。如果有人能帮助我,那对我来说意义重大。提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果您想为单个category分配一个photo,则需要使用ActiveRecord Association -

#app/models/photo.rb
Class Photo < ActiveRecord::Base
    belongs_to :category #-> needs category_id in users table
end

#app/models/category.rb
Class Category < ActiveRecord::Base
    has_many :photos
end

架构:

photos
id | category_id | etc | created_at | updated_at

categories
id | name | created_at | updated_at

这将允许您这样做:

#config/routes.rb
root to: "categories#index"
resources :categories

#app/controllers/categories_controller.rb
def index
    @categories = Category.all
end

def show
    @category = Category.find(params[:id])
end

#app/views/categories/index.html.erb
<% for category in @categories do %>
    <%= link_to category.name, category %>
<% end %>

#app/views/categories/show.html.erb
<% for photo in @category.photos do %>
    <%= image_tag photo %>
<% end %>