2010-02-19 16 views
0

我有一個頁面在我的應用程序的視圖一側有一個對象的循環@users現在我想只更新div的一部分,並且div在循環內部已經使div divamic,但我想更新該div,在同一頁。我已經使用了部分頁面來通過控制器更新頁面,但由於div處於循環狀態,所以這不是wrking。 我的代碼是 視點側:更新循環對象變量中的div

<% for user in @users %> 
    <% if !user.country.blank?%> <%= user.country.to_s.capitalize %><%end%> 
    <div id="div_state_<%=user.id%>"> 
      <%= user.state %> 
       <%if user.state == 'active'%> 
       <%= link_to_remote image_tag("/images/de-active.png",:title =>" make it pending"), :url => admin_manage_user_state_change_path(user.id),:update => 'div_state_#{user.id}' %> 
       <%else%> 
       <%= link_to_remote image_tag("/images/active.png",:title =>" make it active"), :url => admin_manage_user_state_change_path(user.id),:update => 'div_state_#{user.id}' %> 
      <%end%> 
    </div> 

控制器端:

@user = User.find(params[:manage_user_id]) 
if @user.state=="active" 
    @user.state = "pending" 
end 
@user.save 
render :update do |page| 
    page.visual_effect :highlight, "div_state_#{@user.id}", :duration=>3 
end 
+0

「現在我只想更新一個股利的一部分,該分區是循環我已經DIV DINAMIC裏面,但我想更新DIV,在同一個頁面」 ......我真的不明白是什麼你正在努力。你可以嘗試改說嗎? – marcgg 2010-02-19 12:49:08

+0

什麼不起作用?渲染的輸出是什麼以及你想要的輸出是什麼? – JRL 2010-02-19 13:01:33

回答

1

那麼你在呼喚更新但實際上沒有任何更新。

我會拉到這個部分: _user_state.html.erb

<%= user.state %> 
<%if user.state == 'active'%> 
    <%= link_to_remote image_tag("/images/de-active.png",:title =>" make it pending"), :url => admin_manage_user_state_change_path(user.id),:update => 'div_state_#{user.id}' %> 
<%else%> 
    <%= link_to_remote image_tag("/images/active.png",:title =>" make it active"), :url => admin_manage_user_state_change_path(user.id),:update => 'div_state_#{user.id}' %> 
<%end%> 

然後讓你的控制器和你的循環渲染部分。訣竅是在渲染調用中使用:localsrender :partial => 'user_state', :locals => { :user => user }

所以把它放在一起:

控制器(因爲你有更新調用在link_to_remote它會從控制器返回和更換傳入ID的內部HTML):

user = User.find(params[:manage_user_id]) 
if user.state=="active" 
    user.state = "pending" 
end 
user.save 
render :partial => 'user_state', :locals => { :user => user } 

查看:

<% for user in @users %> 
    <% if !user.country.blank?%> <%= user.country.to_s.capitalize %><%end%> 
    <div id="div_state_<%=user.id%>"> 
    <%= render :partial => 'user_state', :locals => { :user => user } %> 
    </div> 
<% end %> 

唯一缺少的一塊是亮點。查看link_to_remote文檔以獲取更多信息。具體:success

希望這會有所幫助。

+0

謝謝先生,我遇到了這樣的問題:當地人被添加!謝謝,它解決了我的問題 – 2010-02-20 09:16:13