2012-02-28 71 views
0

在控制器中,我有@users_shown。在视图中,我使用@users_shown提供了部分_attendants.html.haml为什么渲染一个局部后,@ users_shown是否为零?

没关系,但在这个页面上有一个按钮叫做attend_again,当你点击这个按钮时,它将通过AJAX渲染局部_attendants.html.haml

问题是在部分_attendants.html.haml,@users_shownnil。我不知道为什么。

文件_attendants.html.haml喜欢这个

- unless @users_shown.blank? 
    [email protected]_shown.each do |user| 
    user.name,user.id 
+0

你可以给它更多的信息?如果可能,我希望看到ajax调用 – 2012-02-28 04:33:04

+0

$('#page_attendants')。html('<%= escape_javascript(render:partial =>“xxxx/_page_attendants”)%>'); – hlcfan 2012-02-28 04:36:30

+0

其实没有ajax。 – 2012-02-28 04:54:15

回答

1

你需要设置@users_shown在被渲染AJAX控制器动作_attendants部分。这是一个完全独立的请求,需要适当地设置所有相关数据。

+0

嗨,thx.this是没有ajax _attendants,只是_attendants.html.haml – hlcfan 2012-02-28 04:23:25

+0

我意识到。呈现attendants.html.erb的控制器需要设置@users_shown,尽管您将其设置为初始页面呈现。如果您无法轻松设置,您可以将该值放入会话中,但我不建议您使用任何类型的对象。 – vansan 2012-02-28 21:07:30

0

尝试添加本地的部分呈现,如:

<%= render :partial => "xxxx/_page_attendants", :locals => { :users_shown => @users_shown } %>