【问题标题】:How can I list all records which belong to another record at the show page?如何在显示页面列出属于另一条记录的所有记录?
【发布时间】:2011-06-12 18:35:01
【问题描述】:

我有一个场地表和一个区域表,其中一个场地属于一个区域,一个区域有很多场地。

在查看区域展示页面时,如何显示属于某个区域的所有场馆?

我认为这会起作用:

区域 show.html.erb:

<%= area.venue.name %>, or
<%= area.venue.name, :collection => @area.venues %>

路线:

resources :areas, :has_many => :venues

但它给出了“未定义的局部变量或方法‘区域’”错误或语法错误。

我对任何编程和轨道都是超级新手,我做错了什么?

另外,我设置了部分场地,但它显示在我的应用程序的另一部分,我只想列出场地名称而不使用部分。

非常感谢您提供的任何帮助!

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    首先,你能给我们看看你的areas_controller.rb文件吗?

    在您的视图中,您可以这样做:

    <% @area.venues.each do |venue| %>
      <%= venue.name %>
      # etc.
    <% end %>
    

    这意味着在您的区域控制器中,您有一个 show 操作来实例化 @area 实例变量。

    类似:

    def show
      @area = Area.find(params[:id])
    end
    

    顺便说一句,不要将模型关系放在 routes.rb 文件中!您需要将它们放入模型中。

    面积.rb

    class Area < ActiveRecord::Base
      has_many :venues
    end
    

    场地.rb

    class Venue < ActiveRecord::Base
      belongs_to :area
    end
    

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多