将变量添加到ActiveRecord :: Base

时间:2013-11-17 12:19:07

标签: ruby-on-rails

我正在展示名为Micropost的ActiveRecord :: Base的一些属性:

<table>
  <tr>
    <th>Items</th>
    <th>Creation Date</th>
    <th>Progress</th>
  </tr>

  <td>
    <% @user.microposts.each do |micropost| %>
    <tr>
      <td><%= micropost.content %></td>
      <td><%= micropost.created_at %></td>
      <td><%= micropost.progress %></td>
    </tr>
    <% end %>
  </td>
</table>

这是类定义:

class Micropost < ActiveRecord::Base
  belongs_to :user
  validates :content, length: { maximum: 140 }
  @progess = 0
end

如果我不放<td><%= micropost.progress %></td>,它可以正常工作。但是,如果我这样做,我会得到:

对于#`

undefined method进展'

我也尝试了progress :number,但我似乎无法找到如何向该类添加变量并将其显示在.erb上。

1 个答案:

答案 0 :(得分:1)

@progress = 0设置类级实例变量,不创建任何方法。要创建实例方法,请使用defattr_accessorattr_readerattr_writer中的一个。