属性是否以任何方式保留rails模型命名?(Rails的多元化简直要了我的命)



我试图在Rails 3.1中添加一个名为Properties的模型,所以我使用ryan bates漂亮的生成器创建了它,尽管模型本身现在非常基本,只包括。

class Property < ActiveRecord::Base
  belongs_to :user
end

在我的资源中有"

"
resources :properties

在我的一个观点中,我只是想做以下事情:

<% for property in Property.all %>
 <p>description etc</p>
<% end %>

但是它给了我以下错误?!

undefined method `all' for Property:Module

现在如果我替换属性,它就可以工作了。所有与用户。all or House。除了出于某种原因,财产不起作用。我对rails有点陌生,认为它与多元化有关,但我不明白,这让我很难受。如果有人能帮忙,那就太好了!欢呼声

您可以使用Inflections来扩展默认字典(默认不包括属性词)。官方API可以帮你解决这个问题

在您的模型定义中,您需要告诉它您的表的真实名称,例如

class Property < ActiveRecord::Base
    set_table_name "properties"
end

此外,您可能还想稍微调整代码以显示数据,最好使用控制器获取数据,并使用视图显示它

在控制器

def index
  @properties = Property.all
end

在你的视图

<% @properties.each do |property| %>
  <%= property.description %>  
<% end %>

最新更新