Мне интересно, могу ли я использовать теги rails в html с помощью jquery для перезагрузки таблицы на основе нового запроса. Смотрите ниже:Использование Rails html-тегов в jquery
<table id = "PlyrsTm2" style = float:right>
<tr><th id="PTTitle" colspan=2>List of players on selected team</th></tr>
<tr><th id="PTHRows">Player</th><th id="PTHRows">Team</th></tr>
<% @pl.each do |f| %>
<tr><td class="player"><%= f.Plyr %></td><td class="team"><%= f.Team %></td></tr>
<% end %>
</table>
Так я знаю, что я могу это сделать:
$('#PlyrsTm2').html('<table id = "PlyrsTm2" style = float:right><tr><th id="PTTitle" colspan=2>List of players on selected team</th></tr><tr><th id="PTHRows">Player</th><th id="PTHRows">Team</th></tr><tr><td class="player"></td><td class="team"></td></tr></table>
но если я добавляю рельсы части к нему, то он не обновляется/перезагрузки таблицы. Я посмотрел по всему Интернету и не нашел решения. Я поставил вопрос, подобный этому, но никто не ответил, и он был отклонен из-за недостаточного исследования (это не так), потому что я только задаю вопросы, чтобы ответить, что я не нахожу, может кто-то мне помочь с этим, я бы высоко оценили
RE-ОБНОВЛЕНО
это может быть полезно, чтобы получить возможность отправлять Аякса и JQuery, что я использую:
$(document).ready(function(){
$('#showbtn').on('click', function() {
ids = $('#teams').val()
IM = false
$.ajax({
url: "http://localhost:3000/teamplayers.json?resolution="+ids+"&import="+IM,
type:"get",
dataType: "json",
cache: true,
success:function(data){
$('#PlyrsTm2').html(data);
$('#PlyrsTm2').show();
alert(data);
alert("Loading Players....");
},
error: function(error) {
alert("Failed " + console.log(error) + " " + error)
}
});
$('#PlyrsTm2').trigger('create');
});
});
я нажимаю кнопку (#showbtn), который он проходит целое value (#teams) к моему контроллеру, который затем изменяется, и вот таблица, которую я хочу загрузить:
'<table id = "PlyrsTm2" style = float:right><tr><th id="PTTitle" colspan=2>List of players on selected team</th></tr><tr><th id="PTHRows">Player</th><th id="PTHRows">Team</th></tr><tr><% @pl.each do |f| %><td class="player"><%= f.Plyr %></td><td class="team"><%= f.Team %></td></tr><% end %></table>
Как вы можете видеть, что есть Rails HTML в нем, но я не думаю, что это на самом деле повторно excutes рельсам часть <& @pl.each do |f| %>
который затем я вижу ту же таблицу, которая загружается, когда страница была первой открыт. Итак, как мне восстановить рельсы с новой информацией?
Я могу отправить контроллер, если необходимо.
UPDATE Вот контроллер
class TeamplayersController < ApplicationController
before_filter :set_id
before_action :set_id, :set_teamplayer, only: [:show, :edit, :update, :destroy]
# GET /teamplayers
# GET /teamplayers.json
def index
@teamplayers = Teamplayer.all
@fteams = Fteam.all
tid = params[:resolution]
toimport = params[:import]
if tid.nil?
tid = 1
else
tid = tid.to_i;
end
@ids = tid
@pl = Teamplayer.joins(:live_player).where(:teamid => @ids).all << Here should refresh the table
if toimport == "true"
@turl = Fteam.where(:id => @ids).pluck(:TeamUrl)
@turl = @turl[0]
system "rake updateTm:updateA[#{@turl},#{@ids}]"
end
end
Спасибо, что вместе с некоторыми маневрирования сделали именно то, что я хотел – user3240928