【发布时间】:2011-09-13 17:01:36
【问题描述】:
好的,这就是我的设置,我认为我已经正确设置了所有内容,但由于某种原因,页面没有显示 AJAX 响应。
基本上,我有一个成员列表,并希望在同一页面上使用 ajax 显示他们的“个人资料”。
在views/member/index.html.erb中
<table>
<tr>
<th>Name</th>
</tr>
<% @members.each do |member| %>
<tr>
<td><%= member.name %> & <%= member.sname %></td>
<td><%= link_to 'Show', member, :remote => true %></td>
<td><%= link_to 'Edit', edit_member_path(member) %></td>
<td><%= link_to 'Destroy', member, :confirm => 'Are you sure?', :method => :delete %> </td>
</tr>
<% end %>
</table>
<%= link_to 'New Member', new_member_path %>
<div id="memberprofile">
</div>
在我的成员控制器中,我有这个:
def show
@member = Member.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.js
format.xml { render :xml => @member }
end
end
然后在我的 _show.js.rjs 我有这个
page.replace_html('memberprofile', render(@member))
然后在我的 _member.html.erb 部分我有这个:
<h1><%= @member.name %></h1>
几个问题:
1) 从控制台显示“渲染成员/show.html.erb”,但我认为它只会渲染部分成员。这是为什么?
2) 当 ajax 调用结束时,index.html.erb 页面中什么也没有发生。我认为拥有 div 挂钩加上 javascript 文件就可以解决问题...
谢谢大家
【问题讨论】:
-
尝试将
_show.js.rjs重命名为show.js.rjs,看起来你的format.js正在呈现默认show.html.erb
标签: ruby-on-rails ajax ruby-on-rails-3 unobtrusive-javascript