Я хотел бы фильтровать рассказы по моему индексу на основе двух разных условий, в которых вы находитесь для текущей страны, а другой для всех стран. Возможно ли создать область, в которой она могла бы получать истории для обоих условий?Область применения с двумя разными условиями
Все страны являются булевым полем, где в моей таблице рассказов. Логика заключается в том, что Story создается для всех стран в поле, all_countries = 1
Модель Featured Item, где рассказы могут быть представлены на индексной странице, если писатель хотел бы это сделать.
Это как моя модель выглядит как сейчас с областями
class Country < ActiveRecord::Base
has_many :stories
end
class Story < ActiveRecord::Base
belongs_to :countries
has_many :featured_items, dependent: :destroy
scope :by_country, lambda { |id| where(:country_id => id)}
scope :for_all_countries, where(:all_countries => true)
end
class FeaturedItem < ActiveRecord::Base
belongs_to :story
scope :by_country, -> (country) {joins(:story).where('`stories`.country_id = ?', Country.find(country))}
scope :for_all_countries, -> { joins(:story).where('`stories`.all_countries = ?',true) }
end
р/с возможностью для всех стран по признакам предметов также возвращает ошибку.
Можете ли вы отправить сообщение об ошибке, а? –
Я не думаю, что вам нужно найти в этом - 'scope: by_country, -> (страна) {joins (: story) .where (: stories => {: country_id => country})}' должен работать для id или страна экземпляра – Swards
Я думаю, что его обратные тики ... Попробуйте это вместо этого. 'scope: by_country, -> (страна) {joins (: story) .where ('stories.country_id =?', country.id)} scope: for_all_countries, -> {joins (: story) .where ('stories .all_countries =? ', true)} ' –