rails 3中的嵌套资源

时间:2011-08-05 21:07:37

标签: ruby-on-rails ruby-on-rails-3

我的路线档案是:

resources :countries do
  resources :regions do 
    resources :appartments
  end
end

模型:

Country: has_many :regions

Region: belongs_to :country, has_many :appartments

Appartment: belongs_to: region

Region_controller:

def index
  @country = Country.find(params[:country_id])
  @regions = @country.regions
end


def show
  @country = Country.find(params[:country_id])
  @region = @country.regions.find(params[:id])
end  

问题:

我想在区域页面上显示公寓。我所在区域控制器的最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

这只是:

@appartments = @region.appartments

答案 1 :(得分:1)

如果您只想在区域展示页面中显示公寓,请执行以下操作:

  1. 在区域show action中创建一个实例变量:

    @appartments = @regions.appartments

  2. _appartments.html.erb文件夹中创建部分views/regions

  3. regions/show.html.erb页面的某处,放置此内容:

    <%= render @appartments %>

  4. 这应该可以解决问题。