我有我的show action在一个名为属性/ _property_details.html.erb,我试图显示与索引操作的视图内的Ajax。在部分显示动作将不会显示在索引视图 - rails
属性/ index.html.erb:
<div id="showdiv">
<%= render :partial => 'property_details' %>
</div>
属性/ _property_details.html.erb:
<div id="response">
<h3>
<%= [@property.Address,@property.City,"FL"].join(", ") %> <%= @property.Zip %></h3>
etc etc </div>
然而,当我尝试加载索引页的所述@property可变表演动作是零,所以我得到一个
undefined method `Address' for nil:NilClass
大概是因为没有(PARAMS [:编号])的演出行动REQ uired在properties_controller:
def show
@property = Property.find(params[:id])
respond_to do |format|
format.js {render :partial => 'property_details' ,:layout => false}
format.html
end
end
但是,如果是这样的话,那么我应该能够硬编码在表演动作@属性的值只是为了测试这一点,但下面的代码仍然给出了nilclass同样未定义的方法错误,当我尝试加载包含部分的索引页时:
def show
@property = Property.find(1)
respond_to do |format|
format.js {render :partial => 'property_details' ,:layout => false}
format.html
end
end
为什么@property回来为零?我打开了rails控制台并执行了p = Property.find(1)并获得了一个返回的属性,因此出于某种原因,部分控件在我的索引页面内时没有在控制器中侦听show动作。
的部分工作正常时,它的属性内/ show.html.erb这样的:
<div class="twothirds">
<%= render :partial => 'property_details' %>
</div>
<div class="onethird">
<%= render :partial => 'property' %>
</div>
所以,只有当我试图把部分我的索引页,它不中工作。我究竟做错了什么?
“@ property.Address”是否正确?它不是'@ property.address'? – MurifoX 2013-05-07 18:09:09
是的,这是正确的,_property_details.html.erb部分工作正常,当我把它放在属性/ show.html.erb文件 – railsy 2013-05-07 18:22:16
罗西,@ murifoX是正确的,你的命名约定似乎是不正确的 - 我从来没有见过相关模型可以用大写字母表示。 – Kristian 2013-05-07 20:45:54