我知道这个问题已经被问过几次了,但是我一直在追寻麻烦。
我正在创建一个简单的子手游戏,并且已经创建了键盘,因此共有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”);
这将是一个很好的开始。