отображение нескольких файлов просмотра на одной странице - PullRequest
2 голосов
/ 20 марта 2012

В моем плагине Rails я хочу отобразить несколько файлов просмотра на одной странице.

Скажем, я хочу добавить некоторое представление после представления индекса.

Я использую

<% render :partial => "show" %>

в моем index.erb

Работает нормально.Но для лучшего дизайна я хочу сделать то же самое с контроллером.

Итак, если я напишу в своем контроллере внутри действия index

render :partial => "show" 

, то только файл show будет отображаться на странице.

Не могу ли я использовать несколько частей?

Любые комментарии / предложения, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

На самом деле, было бы более «верно» для архитектуры MVC, если бы эта логика оставалась в поле зрения. Я думаю, что самый простой способ сделать это - включить частичные элементы в представление индекса с помощью рендера, как вы уже сделали.

Насколько я знаю, вы не можете "добавлять" представления / частичные значения друг к другу с контроллера.

0 голосов
/ 19 января 2019

Когда я это сделал, я добавил три частичных просмотра страницы шоу

_storethenameofparitalshowviewoptionindatabase1
_storethenameofparitalshowviewoptionindatabase2
_storethenameofparitalshowviewoptionindatabase3

моему контролеру заказов. Я сделал это, запустив миграцию

rails generate migration AddChose_Parital_Show_View_ToListings ordershowviewpartialoption:string

и добавление коллекции выберите в мой контроллер листинга.

<div class="field">
    <%= f.label :ordershowviewpartialoption %>
     <%= f.select :WHAT THE USER SEES IN THE DROP DOWN MENU FOR PARTIAL SHOW VIEW OPTION 2, [['Tictactoe Game', 
'storethenameofparitalshowviewoptionindatabase1'],

['WHAT THE USER SEES IN THE DROP DOWN MENU FOR PARTIAL SHOW VIEW OPTION 2',
'storethenameofparitalshowviewoptionindatabase2'], 

['WHAT THE USER SEES IN THE DROP DOWN MENU FOR PARTIAL SHOW VIEW OPTION 3',
'storethenameofparitalshowviewoptionindatabase3']], {}, {class: "form-control"} %>
  </div>

и не забудьте в controllers \ lists_controller.rb

change this...

def listing_params
   params.require(:listing).permit(:AAA, :BBB, :CCC)
end

to this...

def listing_params
   params.require(:listing).permit(:AAA, :BBB, :CCC, :ordershowviewpartialoption)
end

в моделях \ order.rb у меня

belongs_to :listings

в моделях \ list.rb I

have has_many :orders

в моих заказах \ show.html.erb

<%= render @order.listing.ordershowviewpartialoption %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...