Как использовать области именованных переменных с атрибутами связанных моделей ДРУГОЕ, чем id - PullRequest
0 голосов
/ 09 апреля 2010

У меня проблемы с получением именованной области, работающей с использованием атрибута связанной модели, отличного от столбца id.

У меня есть Фирменная модель, в которой есть столбец city_id. У меня также есть модель города со столбцом имени.

Я хочу получить спокойные URL-адреса, чтобы использовать гем has_scope и иметь узкие контроллеры

http://localhost:3000/firms?by_city=Dublin

Однако, используя настоящий код, я могу вставить только идентификатор города

http://localhost:3000/firms?by_city=546

Вот мой named_route

class Firm < ActiveRecord::Base       
named_scope :by_city, proc {|city| { :conditions => { :city => city } } }
end

Будем весьма благодарны за любые идеи о том, как изменить именованную область видимости, чтобы генерировать URL-адреса с использованием имени!

Спасибо

Jack

1 Ответ

2 голосов
/ 09 апреля 2010

Вам нужно будет добавить belongs_to к классу Фирмы, а затем для названной области добавить объединение по городу, чтобы вы могли получить название города в запросе. Как то так

class Firm < ActiveRecord::Base
  belongs_to :city
  named_scope :by_city, lambda {|city_name| {:joins => :city, :conditions => {:city => {:name => city_name}}}}
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...