0

我们希望default_scope灵活地使用页面上显示的列customer index。例如,如果用户不应该看到 customer phone#,那么我们从页面中删除phonedefault_scope希望在页面上保留phone空白。index我们从网上得到了这个想法,正在做一个测试。missing attribute:phone但是选择时有错误phone。这是我们default_scopecustomer模型中的定义:

def self.default_scope
      Customer.scoped.select("active,name,sales_id,customer_status_category_id, short_name, zone_id, id, since_date")
end 

索引页面:

<table>
  <tr>
    <th>#</th>
    <th>ShortName</th>
    <th>SinceDate</th>  
    <th>Phone</th>
    <th>Active?</th>
    <th>CustomerStatusCategory</th>
    <th>Sales</th>
    <th>LastContactDate</th>

  </tr>

<% @customers.each do |cust| %>
  <tr>

    <td><%= cust.id %></td>
    <td><%= cust.short_name %></td>
    <td><%= cust.since_date.strftime("%Y/%m/%d") %></td>
    <td><%= cust.phone if cust.phone.present? %></td>
    <td><%= cust.active %></td>
    <td><%= cust.customer_status_category.name %></td>
    <td><%= cust.sales.name %></td>    
    <td><%= return_last_contact_date(cust.id).strftime("%Y/%m/%d") %></td> 

  </tr>
<% end %>
</table>

错误是:

 ActiveModel::MissingAttributeError in Customerx/customers#index

Showing C:/D/code/rails_proj/engines/customerx/app/views/customerx/customers/_index_partial.html.erb where line #32 raised:

missing attribute: phone

是否可以通过故意不在index(或任何视图页面)中选择它来显示一个空列?如果可能,是否default_scope有合适的工具来实现这一目标?谢谢。

4

0 回答 0