假设有一个名为_hello_world.html.erb的部分
<% 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 %>
最初这个部分将从像这样的索引文件中调用,
<%= render :partial => 'test/hello_world', :locals => {:toggle => true} %>
但是在我点击切换链接后,它应该在On和Off状态之间切换,这应该基本上再次渲染自己的部分覆盖先前的部分。怎么做?
注意:我已经以http://sscce.org/格式提供了问题。
答案 0 :(得分: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