Rails检索相关信息

时间:2015-04-27 11:33:20

标签: ruby-on-rails view model-associations

我找不到正确的语法来检索相关信息。我有一个模特' companyaccount'属于模特公司'。

class Company < ActiveRecord::base
  has_many :companyaccounts
end

class Companyaccount < ActiveRecord::base
  belongs_to :company
end

在视图中,我可以轻松检索到&#39; Companyaccount&#39; &#39;数&#39;并且&#39; id&#39;通过&#39; company_id&#39;关联公司的&#39; companyaccount&#39;的领域表

<%= @companyaccount.each do |companyaccount| %>
 <%= companyaccount.company_id %>
 <%= companyaccount.number %>
<% end %>

从此基本控制器调用视图

def index
  @companyaccount = Companyaccount.all
end

现在,我不想拥有company_id,而是公司的实际名称(位于&#39; company&#39;表格中)。我设法使用像这样的控制器为一个特定的公司做这个

def index
  @companyaccount = Companyaccount.all
  @company = Company.first
end

然后在视图中更改

<%= companyaccount.company_id %>

通过

<%= company.name %>

但当然,对于每个公司帐户,这将检索相同的第一家公司,而不是与公司帐户相关联的每家公司。任何人都可以为我提供适当的语法来检索&#34;每个&#34;中每个公司帐户的关联公司名称。我的观点循环?感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用委托。

<%= companyaccount.company_name %>

然后你可以拨打<%= @companyaccount.each do |companyaccount| %> <%= companyaccount.company.name %> <%= companyaccount.number %> <% end %>

答案 1 :(得分:0)

你应该能够通过这个循环实现你想要的东西:

<script type="text/javascript">
            var nb = 0;
            function count_nb_submit() {
                nb++;
                var myform = document.getElementById('test');
                document.getElementById("nb").value = nb;
                myform.submit();
            }
        </script>

答案 2 :(得分:0)

def index
  @companyaccount = Companyaccount.all
end

并在视野中

<% @companyaccount.each do |companyaccount| %>
 <%= companyaccount.company.name %>
<% end %>

对于较少的db调用,您可以更改控制器,如

@companyaccount = Companyaccount.includes(:company).all