Rails - сделать активным частичное на той же странице? - PullRequest
1 голос
/ 24 января 2020

Так что я просто прикрепляю скриншот, чтобы сделать его более понятным:

enter image description here

Есть ли способ динамической загрузки частичного на основании какой кнопки была нажата?

Например: если нажата Клиенты, загрузите частичку клиента с правой стороны. Если продукты, продукты частичные и так далее.

Я видел где-то в литературе несколько примеров, где они это делали, но больше не могу его найти.

Заранее всем спасибо!

Приветствую!

1 Ответ

1 голос
/ 25 января 2020

Я думаю, вы можете сделать это очень простым способом ... Предположим, ваша кнопка загружена на индексную страницу: -

#index.html.erb

.....
  #Your index page code
.....
<%= link_to “customer path”, customer_path, class: "css-class", remote: true %> ## create button with remote true for ajax call
<%= link_to “product path”, product_path, class: "css-class", remote: true %> ## create button with remote true for ajax call

   <div id = "customer-section"> </div> #div to load partials
   <div id = "product-section"> </div> #div to load partials

В вашем контроллере:

#controller.rb

def customer
 #customer code here
 respond_to do |format|
  format.js  {}
 end
end

def product
 #product code here
 respond_to do |format|
  format.js  {}
 end
end

Создать js file: -

# customer.js.erb
$("#customer-section").html("<%=j render "customer")%>");

# product.js.erb
$("#product-section").html("<%=j render "product")%>");

Создать частичный html файл для рендеринга: -

# _customer.html.erb
<h1>This is customer partial</h1>


# _product.html.erb
<div>This is product partial</div>

Таким образом, вы можете выполнить вышеуказанные требования. Для получения дополнительной информации вы можете обратиться к этой статье https://m.patrikonrails.com/how-to-make-ajax-calls-the-rails-way-20174715d176

Надеюсь, это поможет вам. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...