渲染部分在rails中传递值+ AJAX

时间:2015-05-29 03:04:50

标签: javascript jquery ruby-on-rails ruby ajax

我已经被困在这里2个小时了。我正在使用Rails 4.2和Ruby 2.1.1。

我有这组单选按钮:

new.html.erb:

<% PokemonDefault.where(forme: nil).each do |pkm| %>
     <li>
          <%= f.radio_button :number, pkm.num, :onclick => 'render_picture();' %>
          <%= image_tag 'miniaturePokemon/'+pkm.code+'.png' %>
          <span class="name"><%= pkm.name %></span>
     </li>
<% end %>

我也有这个js:

new.js.erb (注意:“????”是我不知道如何填写的字段之一)

function render_picture() {
$('#pokemon_picture').html('<%=j render :partial => 'picture',:locals => {:number => ???? } %>');

}

最后,图片模板:

_picture.html.erb

<%= number %>

我想要的是当我点击其中一个单选按钮时,我会在'#pokemon_picture'中呈现'_picture',其中包含 pkm.num attibute。 (我想使用这个数字来渲染图片,每张图片都有自己的编号。)

只是为了澄清:每个 pkm 都有自己的,我想通过Ajax单击单选按钮时立即呈现它。

1 个答案:

答案 0 :(得分:0)

<强>尝试

<%= f.radio_button :number,
                   pkm.num,
                  :onclick => 'render_picture(this);',
                  :data-num => pkm.num 
%>

function render_picture(tag) {
  var num = $(tag).data('num');
  $('#pokemon_picture').html('<%=j render :partial => 'picture',:locals => {:number => ' + num + ' } %>');
}

<%= f.radio_button :number,
                   pkm.num,
                  :onclick => "render_picture(#{pkm.num});"
%>

function render_picture(num) {
  $('#pokemon_picture').html('<%=j render :partial => 'picture',:locals => {:number => ' + num + ' } %>');
}