我知道这个问题已经被问过几次了,但是我一直在追寻麻烦。

我正在创建一个简单的子手游戏,并且已经创建了键盘,因此共有26种形式,如下所示:

            <%= form_for @puzzle, :remote => true, :html => {:class => 'keyq'} do |f|%>
            <%= f.hidden_field :letters_guessed, value: "Q" %>
            <% end %>


我将字母存储在数组类型db字段:letters_guessed

然后,我用它来循环查看用户是否猜到了字母。

<div class="mystery">
            <% @puzzle.word.length.times do |digit| %>
                <% letter = @puzzle.word[digit] %>
                <% if @puzzle.word[digit] == " " %>
                <br>
                <% elsif @puzzle.letters_guessed.include?(letter.upcase)%>
                    <%= letter %>
                <% else %>
                    <%= "_" %>
                <% end %>
            <% end %>
</div>


因此,从本质上讲,我需要使用新数组更新神秘div。到目前为止,当我提交表单时,没有任何反应(我想是可以预料的)。

这是我的控制器动作

    def update
      @puzzle.letters_guessed = @puzzle.letters_guessed + [params[:puzzle][:letters_guessed]]
      @puzzle.save
      respond_to do |format|
        format.html
        format.js
    end


这里的想法是我创建一个新数组,并保存它。现在来了我不确定该如何处理渲染的部分。

我已经在与其他视图相同的目录中创建了一个_puzzle.js文件...如何在不实际刷新页面的情况下将新数组返回到我的视图?

最佳答案

尝试在app / views / YOUR_MODEL /中创建update.js.erb,然后简单地放置alert(“ Goes here”);

这将是一个很好的开始。

10-05 18:17