Без вашего кода довольно сложно предложить реальные исправления, но это определенно звучит как действительно неправильный подход, и вы делаете вещи намного сложнее, чем они должны быть:
3 строки установки переменных в
определить, какой "уровень" иерархического
данные ищутся
если есть форма поиска, я думаю, вы захотите передать ее прямо из хэша params в scopes или вызовы Model.where (). Настройте области действия на вашей модели соответствующим образом.
Еще 10 строк для заполнения некоторых переменных представления в зависимости от того, был ли субдомен в запросе или нет.
Мне кажется, это должно быть не более 1 строки. или что, по вашему мнению, вы должны использовать операторы if, чтобы изменить то, что вы хотите, чтобы ваш вывод зависел от вашего субдомена.
10-строчный раздел для перенаправления на одну из двух страниц на основе:
единственное, что отличается в вашем объяснении двух представлений, это «запросил ли пользователь доступ», конечно, это просто логическая переменная? Вам нужен только 1 просмотр. Оберните различия в 2 части, а затем, на ваш взгляд, и напишите одно из них, чтобы выбрать между ними.
Еще 10 строк для построения динамического арла.
* * * * * * * * * * * * * * * * * * * * * мог бы быть нуждаться в 1028 *, чтобы войти в Арель, но я очень сильно сомневаюсь в этом. Ваш фактический поисковый вызов может в большинстве случаев (и должен стремиться быть) одной строкой, сделанной через стандартный интерфейс запросов ActiveRecord. Вы хотите настроить в своих моделях сильные области, которые заботятся о присоединении к другим моделям / сужающим условиям и т. Д. Через интерфейс запроса ActiveRecord.