我有我的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