ruby ActiveRecord追加

在做地址添加修改时,会遇到一个问题, 我们一般存储的是地址编码, 但我们在列表显示需要显示地址名称, 所以需要想结果集追加数据, 在ruby中有一个虚拟属性就可以实现这个,我们需要在model中定义追加字段

models/user_address.rb

def region_text
    Regionable.region_text(self.region_code)
  end

在前端页面就可以直接使用

<% @user_addresses.each do |address| %>
            <tr id=<%= dom_id(address) %> >
              <td><%= address.consignee %></td>
              <td><%= address.region_text %></td>
              <td><%= address.address %></td>
              <td><%= address.phone %></td>
              <td><%= address.zipcode %></td>
              <td>
                <% if address.is_default != 1 %>
                <%= link_to '设为默认', set_default_customer_center_user_address_path(address.id) %>  
                <% end %>
                <%= link_to '修改', edit_customer_center_user_address_path(address.id) %>  
                <%= link_to '删除', 
                    customer_center_user_address_path(address),
                    method: :delete,
                    data: { confirm: '确认要删除么?' } %>
              </td> 
            </tr>
          <% end %>



参考了Ruby on rails 实战圣经:ActiveRecord

虚拟属性(VirtualAttribute)
有时候窗体里操作的属性数据,不一定和数据库的字段完全对应。例如数据表分成first_name和last_name两个字段好了,但是窗体输入和显示的时候,只需要一个属性叫做full_name,这时候你就可以在model里面定义这样的方法:
def full_name
    "#{self.first_name} #{self.last_name}"
end
 
def full_name=(value)
    self.first_name, self.last_name = value.to_s.split(" ", 2)  
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值