2015-05-29 181 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 +」。 –