【问题标题】:Question about associating models关于关联模型的问题
【发布时间】:2011-04-30 17:41:07
【问题描述】:

我正在开发龙与地下城角色数据库。我有两个模型,字符和统计。我希望这个在每个角色都有一组统计数据的情况下工作。问题是,当我创建一个新角色时,每个角色都共享相同的统计信息。这可能是一个非常容易解决的问题,但我一直在努力解决它并且无法弄清楚。

以下是角色模型的代码:

类字符 has_many :statistics, :dependent => :destroy
结束

这是来自统计模型的代码:

类统计 <:base> 属于_to :字符
结束

查看角色时显示统计模型的正确代码是什么?我需要使用 link_to 还是 render 标签?谢谢!

【问题讨论】:

    标签: activerecord


    【解决方案1】:

    由于它们很多,您需要使用循环或其他东西:

    <ul>
      <% @character.statistics.each do |stat| %>
        <li><%= stat %></li>
      <% end %>
    </ul>
    

    最好使用部分:

    <ul>
      <% @character.statistics.each do |stat| %>
        <%= render :partial => "characters/statistic", :object => stat %>
      <% end %>
    </ul>
    

    然后您将拥有 app/views/characters/_statistic.html.erb:

    <li><%= statistic %></li>
    

    这样你也可以在其他地方使用代码进行统计渲染。

    【讨论】:

    • 感谢您的帮助!不过,另一个问题。由于每个角色只有一个统计模型实例,我需要声明 has_many 吗?起初,我认为 has_one 是要走的路,但后来我认为应该是 has_many,因为我将拥有多个角色实例。哪条路是正确的?
    • 如果 Character 只有一个统计数据,那么 has_one 是要走的路。您的意思是每个统计信息都属于多个字符,还是您的系统中只有多个字符?
    • 我将在系统中有多个字符。我假设我希望每个角色都有一个统计模型实例,因为每个角色只有一组统计数据。
    • 嗯,所以他们有一组 统计数据?这意味着他们有很多统计数据,所以你原来的 has_many/belongs_to 设置是正确的。如果是 D&D,我猜每个角色会有 6 个不同的统计数据,这是一个 has_many 关系。
    • 是的,每个角色都有 6 个不同的统计数据。但是,我仍然遇到所有角色共享相同统计数据的问题。我不确定我需要将您发布的代码放在哪里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    相关资源
    最近更新 更多