Как динамически отобразить частичный HTML на странице Ruby on Rails? - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь создать реализацию «Игры жизни» Конвея в веб-приложении Ruby on Rails, чтобы приспособиться к фреймворку.

Однако я столкнулся с небольшой проблемой.

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

У меня уже есть код, чтобы сделать это, и даже есть частичное построение.Выглядит это так:

<% @array = get_next @array %>
    <script>
        function drawArray(){
            //fill rectangles on canvas based on each of @array's values.
        }
        drawArray();
    </script>

, где функция get_next принимает в качестве аргумента исходный массив и создает следующий массив для соответствующего позиционирования на холсте.

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

Однако мой вопрос: как мне это сделать, покастраница открыта?По сути, целью было бы обновить html в некотором <div> на странице с частичным, который генерируется по запросу клика (на данный момент).Это (я думаю) выглядело бы примерно так ...

<script>
    $('#some_div').click(function(){
        //get new partial
        //update old div with new partial code
    });
</script>

Я очень новичок в этом, и я понимаю, что это может быть даже не самым лучшим способом решения этой проблемы.Тем не менее, любая критика, полезные комментарии или предложения будут с благодарностью.Я открыт для изменения вещей, если это считается лучшей практикой.

1 Ответ

1 голос
/ 19 января 2012

jquery load динамически загружает часть в div

<script>
  $("#some_div").click(function(){
    //get new partial and update display div
    $("#display").load("mypartial-url");
  });
</script>

Предложения:

  • продолжать логику рисования на стороне клиента (браузера), т.е. использоватьjavascript
  • передать массив между клиентом и сервером как json
...