Rails Связывание с альтернативным представлением, отличным от show - PullRequest
0 голосов
/ 03 июля 2018

Это рельсы 3.2

У меня есть список посещений и кнопка, которую я хочу использовать для вызова посещения с альтернативным представлением, отличным от шоу. код кнопки в хамле:

  link_to 'Checkout', render('checkout'),  class: 'btn btn-mini btn-danger'

Кнопка находится в представлении посещений, и у меня есть checkout.html.haml в разделе посещений / просмотров

Кажется, что Render должен это сделать, но это не

Как я могу сделать другое представление, отличное от шоу по умолчанию

1 Ответ

0 голосов
/ 03 июля 2018

render Я думаю, что должен вызываться внутри действия контроллера, я не думаю, что вы должны использовать его внутри вашего кода haml (view).

(1) ваш код haml должен иметь что-то вроде
- эта ссылка при нажатии перенаправляет на действие checkout контроллера посещений.

link_to 'Checkout', checkout_visit_path(visit)

(2), чтобы # 1 работал, вы должны добавить его в routes.rb файл

get '/visits/:id/checkout', to: 'visits#checkout', as: 'checkout_visit'  

или если у вас есть ресурсы блабла в ваших маршрутах. Rb

resources :visits do
  member do
    get :checkout
  end
end

(3) запишите действие вашего контроллера для действия checkout в visits_controller.rb

def checkout
  visit = Visit.find_by_id(params[:id])

  # since we named the controller action as "checkout",  
  # it will look for a file named 'checkout.html' (for html request), or 'checkout.json' (for json request), etc. automatically (and the code block below may not be needed)
  # if for example you want to render another file, do this
  respond_to do |format|
    format.html { render template: 'some/other/file/to/load' }
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...