如何在ruby视图中访问不相关的属性

时间:2015-07-15 17:25:20

标签: ruby-on-rails ruby backbone.js

我是ruby on rails的新手。我有一个董事会模型及其观点。我有一个类别模型及其观点。类别和董事会之间的关系是一对多,即一个类别有很多董事会。我的要求是访问放置在board表中的类别ID,并显示该特定类别id的相应类别标题。在标签标签<label for="home"><%= board.category_id %></label>处,我在标签标签中获取空类别ID,或者可能为空。在rails控制台上,它正确地为我提供数据 这是一个视图代码。

&#13;
&#13;
<div class="myNavigation">
  <nav class="vertical">
    <ul>
      <% boards.each(function (board) { %>  
        <li>
          <label for="home"><%= board.category_id %></label>
          <input type="radio" checked="true" name="verticalMenu" id="home" />
          <div>
            
          </div>
        </li>
      <% }); %>  
    </ul>
  </nav>
  </div>
&#13;
&#13;
&#13;

  

董事会模特班:

class Board < ActiveRecord::Base
  attr_accessible :description, :name, :open, :members, :category_id
  #attr_accessor :category_id
  has_many :lists, dependent: :destroy
  has_many :board_activities , dependent: :destroy
  has_many :boards_members, class_name: "BoardMember" , dependent: :destroy
  has_many :members, through: :boards_members , dependent: :destroy
  belongs_to :category, class_name: "category"

end
  

类别模型类

class Category < ActiveRecord::Base
    attr_accessible :title, :description
    #attr_accessor :category_id
    has_many :boards, dependent: :destroy
end

请建议使用简单的方法来创建红宝石部分布局,例如,application.erb可以包含在某些页面中,而某些页面则不应该包含。它还应该包含上面提到的类别ID。

作为旁注,我在骨干网中工作,上面的视图实际上是一个电路板模板。我正在使用ruby 2.2.1版本和4.1.2 rails版本。还可以提供进一步的细节。提前致谢。

2 个答案:

答案 0 :(得分:0)

在视图代码中,您在板上的循环应如下所示:

<% boards.each do |board| %>  
  <li>
    <label for="home"><%= board.category_id %></label>
    <input type="radio" checked="true" name="verticalMenu" id="home" />
    <div>

    </div>
  </li>
<% end %>  

看起来你所拥有的代码只是在循环中声明匿名函数,我不确定 - 但我认为这就是你想要的:)

答案 1 :(得分:0)

您应该使用<%= board.category.title %>代替<%= board.category_id %>

如果你真的可以有一个null category_id,你可以做到:

<%= board.category.title if board.category_id %>