2015-05-29 122 views
0

我已经在这里停留了2个小时了。我使用的是Rails 4.2和Ruby 2.1.1。渲染局部轨道传递值+ AJAX

我这组单选按钮:

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 => ???? } %>'); 

}

而且finaly,画面模板:

_picture.html.erb

<%= number %> 

所有我想要的是,当我在一个单选按钮,单击,我得到'#picture'呈现在'#pokemon_picture'里面,包含pkm.num attibute。 (我想用这个数字来呈现画面,每个画面都有它自己的号码。)

只是为了澄清:每个PKM有自己,我想它,只要我点击渲染单选按钮,通过Ajax。

+0

第一件事是render_picture功能将只一次在一个页面加载,所以如果您想根据单选按钮,复选框动态值加载因为我看到你显示了一个数字。你可以通过'数字'onclick render_picture函数并直接替换它不需要做渲染部分 –

+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 + ' } %>'); 
} 
+0

他们都只是呈现“+ num +”。 –