Я реализую базовую функцию тегов для своего приложения. Новое для рельсов.rails добавляет теги к контроллеру
У меня есть модель листинга, и я работаю в индексе listings_controller #. Когда пользователь переходит на страницу листинга и устанавливает параметр: tag, я хочу, чтобы пользователи @users содержали только те пользователи, которые соответствуют тегу.
Итак, если они перешли на www.example.com/listings?tag=foo, загружаются только те страницы, которые были помечены foo. Это то, что я придумал до сих пор, но с этим есть несколько проблем.
def index
if params[:tag]
@id = Tag.where(:name => params[:tag]).first.id
@listingid = Tagging.where(:tag_id => @id)
@listingid.each do |l|
@users = User.find(l.listing_id)
end
else
@users = User.all
end
end
Я не уверен, как закодировать и добавить каждого найденного пользователя в @users. Я думаю, что может идти о целых вещах неправильного пути .. Мой тег/маркировочные модели выглядят следующим образом:
tag.rb
class Tag < ActiveRecord::Base
has_many :taggings
has_many :listings, through: :taggings
end
tagging.rb
class Tagging < ActiveRecord::Base
belongs_to :tag
belongs_to :listing
end
-осна- имеет следующие colums:
id, tag_id, listing_id
Метки имеет следующие столбцы:
id, name
Любое руководство было бы оценено, пытаясь исправить это ненадолго.
Спасибо, что получил это работает! Мне просто пришлось немного изменить свой взгляд, поскольку я обращался к листингу через каждого пользователя. благодаря! –