Форум программистов, компьютерный форум, киберфорум
Ruby on Rails
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12

Shared Views

16.10.2015, 12:59. Показов 887. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть две, абсолютно одинаковые модели Expense и ExpenseCash (class ExpensesCashController < ExpensesController) (не спрашивайте, почему было принято решение их разделить).
Какое можете посоветовать rails-way решение для совместного использования view? Я знаю про render "expenses/something", но как быть с link_to expense_edit_path(e) во вьюхах? Очень не хочется держать для этой модели отдельную вьюху...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2015, 12:59
Ответы с готовыми решениями:

Вопрос по Shared, Private-on-first-usе Views
Подскажите, пожалуйста, как решить следующую проблему. Есть View, определенное как Shared, private-on-first-usе. Через некоторое время...

Какой View лучше "shared, Private On First Use" или Shared
Доброго всем дня. Вопрос больше теоретически. Есть набор документов (пока немного около 500, каждый месяц будет прирост примерно...

литература shared objects & dynamic shared objects
Привет, товариСЧи. Подкиньте пожалуйста пару тройку книженций по теме инглиш тоже пойдет, но лучше рус. Добавлено через 42 минуты ...

4
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
16.10.2015, 15:51
В в render передавайте вторым параметром свой объект
Rails
1
2
3
...
    render 'shared/expense_view', obj: @expence
...
Для ссылок используте polymorphyc_path или polymorphic_url

Rails
1
2
3
    ...
    <%= link_to 'Edit', edit_polymorphic_path(obj) %>
    ...
0
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12
19.10.2015, 15:13  [ТС]
Спасибо за ответ, утащил polymorphic_path, только для вложенных маршрутов и методов не CRUD не подошло, пришлось использовать как то так:
Rails
1
link_to controller_name, action: 'cloneit', firm_id: @firm.id, expense_id: e.id
А как переопределить методы из модулей? То есть я создал модуль, на основе которого делаю два контроллера Expense и CashExpense,
Rails
1
2
3
class ExpensesController < ApplicationController
  include Controllers::BaseExpenses
end
но в модуле определен конкретный объект, например Expense, и в котнроллере CashExpense я тоже получаю Expense

Rails
1
2
def new
      @expense = Expense.new
Добавлено через 27 минут
или вот такой метод модуля:
Rails
1
2
def index
      @expenses = @firm.expenses.search(params[:search], params[:page])
для двух контроллеров на @firm надо вызывать разные методы expenses и cash_expenses. как это реализовать rails-way?
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
19.10.2015, 23:50
У вас планы посерьезней, чем просто использование общего представления. Смотрите в сторону ActiveSupport::Concern, почитайте про методы ActionController::Metal#controller_name и ActiveSupport::Inflector#constantize
1
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12
20.10.2015, 09:09  [ТС]
спасибо, не знаю на сколько rails-way, но в итоге в модуле сделал так:
Rails
1
2
3
4
5
6
7
8
9
10
11
12
13
module Controllers
  module BaseExpenses
def index
  @expenses = @firm.send(controller_name).search(params[:search], params[:page])
end
 
def set_expense
  model = controller_name.classify.constantize
  @expense = model.find(params[:id])
end
 
end
end
но к сожалению, все же пришлось отказаться от идеи разбить Expense на Expense и CashExpense, так как expense участвует(has_many, belongs_to) во многих других моделях и добавлять в них новые поля не очень хочется...

в любом случае спасибо за ответы, узнал что-то новое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2015, 09:09
Помогаю со студенческими работами здесь

Views
Всем привет Вобщем вопрос таков можна ли сделать так чтоб на вю не дублировались документи. тоесть если уже есть пупкин петя и у нево...

Partitioned Views
Подскажите, сложилась такая ситуация: решил сделать Partitioned View. Была у меня таблица, около 3,5 млн. записей. Разбил я ее на 12...

Framesets Vs Views
подскажите где ошибка делаю отображенние при помощи Frameset у меня отображаеться нормально а у пользователей стандартный вьювер где...

SpringBoot views
Тем временем я продолжал изучать Spring MVC. Интересует способы запиливания видов, в доках привыкли использовать Thymeleaf. Это наиболее...

Ссылка на views
есть сайт, в главном меню есть страны(со ссылками), но само название блока &quot;Страны&quot; статическое. Нужно сделать &quot;страны&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru