部分显示操作不会显示在索引视图中 – rails

我在一个名为properties / _property_details.html.erb的部分中有我的show动作,我试图在索引动作的视图中用ajax显示。

性能/ index.html.erb:

'property_details' %>

性能/ _property_details.html.erb:

 

etc etc

但是,当我尝试加载索引页面时,show动作的@property变量为零,所以我得到了一个

 undefined method `Address' for nil:NilClass 

大概是因为在properties_controller中需要show动作没有(params [:id]):

 def show @property = Property.find(params[:id]) respond_to do |format| format.js {render :partial => 'property_details' ,:layout => false} format.html end end 

但是如果是这种情况那么我应该能够在show动作中为@property硬编码只是为了测试这个但是当我尝试加载包含部分的索引页时,下面的代码仍然为nilclass错误提供相同的未定义方法:

 def show @property = Property.find(1) respond_to do |format| format.js {render :partial => 'property_details' ,:layout => false} format.html end end 

为什么@property会以nil的forms回归? 我打开了rails控制台并执行了p = Property.find(1)并返回了一个属性,因此出于某种原因,当它在我的索引页面中时,partial不会在控制器中监听show动作。

部分工作正常,当它在properties / show.html.erb中时,如下所示:

 
'property_details' %>
'property' %>

所以只有当我试图将部分放在索引页面中时才会起作用。 我究竟做错了什么?

这是我第一次尝试使用Ajax,因此在用户点击链接以显示show动作之前,我错误地将索引操作中的show动作包含在内。 所以我用一个空div替换了index动作中的partial,只有当用户点击属性链接通过show动作查看属性时,我才用div通过ajax替换空div。