2012-01-12 48 views
1

說有一個叫偏_hello_world.html.erb渲染自己的部分過孔用Rails的JavaScript

<% if toggle %> 
    HELLO WORLD ON 
    <%= link_to "Turn it off", what_should_come_here %> 
<% else %> 
    HELLO WORLD OFF 
    <%= link_to "Turn it on", what_should_come_here %> 
<% end %> 

Intially這部分將從這樣說的索引文件被調用,

<%= render :partial => 'test/hello_world', :locals => {:toggle => true} %> 

但在我點擊切換鏈接後,它應該在開啓和關閉狀態之間切換,這應該基本上使自己的部分重寫先前的部分。這個怎麼做 ?

注:我已經給出http://sscce.org/格式的問題。

+0

你想再次加載索引或只是想改變包含這部分??? – 2012-01-12 10:12:14

+0

@ dku.rajkumar:Mr.DKU,只是改變部分內容 – bragboy 2012-01-12 10:22:07

回答

0

,而不是link_to這將是更好地使用link_to_remote

index.html.erb

<div id="toggle_div"> 
    <%= render :partial => 'test/hello_world', :locals => {:toggle => @toggle} %> 
</div> 

_hello_world.html.erb

<% if toggle %> 
    HELLO WORLD ON 
    <%= link_to_remote "Turn it off", my_action_path(:toggle => toggle) %> 
<% else %> 
    HELLO WORLD OFF 
    <%= link_to_remote "Turn it on", my_action_path(:toggle => toggle) %> 
<% end %> 

在行動

def myaction 
    value = params[:toggle] 
    // do something with toggle value 

    @toggle = value == "true" ? false: true 
    render :update do |page| 
    page.replace_html 'toggle_div', :partial => 'hello_world', :locals => {:toggle => @toggle} 
    end 
end