Извлечение частичных данных с помощью функции onclick в функции Javascript (Ruby on rails)

#javascript #ruby-on-rails #ruby

#javascript #ruby-on-rails #ruby

Вопрос:

Этот код, который я использую для извлечения части из Calendar/_form.html.erb, отображает частичную часть до того, как я нажму на фактическую кнопку. Есть ли более эффективный способ сделать это? Он также не корректно извлекает какие-либо css / js.

 <div id="demo">
    This Will Magically Change to the partial i am rendering!
</div>

<button onclick="myFunction()"> Switch to partial button </button>

<script>
  function myFunction() {
    document.getElementById ("demo").src = <%= render 'calendars/form' %>;
  }
</script>
  

По какой-то причине я начинаю думать, что этот метод извлечения данных или частичных данных не является правильным способом (angularjs, похоже, делает это по-разному, например, для создания одностраничного приложения).

Ответ №1:

Создайте отдельный маршрут в файле routes.

Затем измените приведенную ниже

 <button onclick="myFunction()"> Switch to partial button </button>
  

Для

 <%= link_to "Switch to partial button", calender_path, :remote => true %>
  

В вашем контроллере добавьте метод, приведенный ниже.

 def calender
  respond_to do |format|               
    format.js
  end        
end 
  

Затем вы должны создать calender.js.erb в нужном вам каталоге и добавить следующий код в этот файл.

 $('#demo').html("<%= render :partial => 'form' %>");
  

Ссылка: Учебное пособие