Rails 3 AJAX问题-UJS

| 好的,这是我的设置,我想我已经正确设置了所有内容,但由于某种原因该页面未显示AJAX响应。 基本上,我有一个成员列表,并希望在同一页面上显示其带有ajax的“个人资料”。 在views / member / index.html.erb中
<table>
 <tr>
  <th>Name</th>
 </tr>

<% @members.each do |member| %>
  <tr>
    <td><%= member.name %> &amp; <%= 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)在控制台上,它显示\“ Rendered member / show.html.erb \”,但我认为这只会使成员部分呈现。为什么是这样? 2)当ajax调用消失时,index.html.erb页面没有任何反应。我认为让div钩子加上javascript文件可以解决问题... 谢谢你们     
已邀请:
        您必须创建一个仅显示成员个人资料的新部分。可以说部分名称为_member.html.erb 在索引文件中执行以下操作:
<%= javascript_include_tag \"jquery-1.4.4.min.js\", \"jquery.form\" %>
<script type=\"text/javascript\"> var $j = jQuery.noConflict();</script>

<table>
 <tr>
  <th>Name</th>
 </tr>

<% @members.each do |member| %>
  <tr>
    <td><%= member.name %> &amp; <%= member.sname %></td>
    <td><%= link_to \'Show\', \"javascript:\", :onclick => \"show_member(member.id)\" %></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>


<script type=\"text/javascript\">
  function show_member(m_id) {
   var container = $j(\"#memberprofile\");
        $j.ajax({
            url: \'/members/get_member?mid=\' + m_id, type: \'get\', dataType: \'html\',
            processData: false,
            success: function(data) {
                container.html(data);
            }
        });
}
</script>
在您的路线中执行以下操作:
resources :members do
  collection do
    get :get_member
  end
end
在您的控制器中执行以下操作:
def get_member
  @member = Member.find_by_id(params[:mid])

  render :partial => \"member\", :layout => false, :locals => {:member => @member}
end
在您的_member.html.erb部分中
<% unless @member.blank? %>
  <h1><%= @member.name %></h1>
<% else %>
   Record not found :(
<% end %>
    

要回复问题请先登录注册