如何在 rails 中更改某些内容以使用不同的名称?
How can I change something to have a different name in rails?
问题是我有一个名为 empaccrl 的模型,table 称为 accrl。在 accrl 中,我有一个名为 accrual_code 的列,该列中的数据是 PERSDAY3 或 VACATION1 ...如何将它们的名称更改为 Personal 和 Vacation 而不必更改我的数据库中的数据...这是我到目前为止所拥有的,但似乎不起作用。任何帮助将不胜感激!
这是我的 empaccrl 模型
class Empaccrl < ActiveRecord::Base
establish_connection :dev
self.table_name = 'accrl'
belongs_to :entry
def accrual_code
if @accrual_code == "PERSDAY3"
accrual_code = 'Personal'
end
if @accrual_code == "VACATION1"
accrual_code = 'Vacation'
end
end
这是我的看法
%table.table.table-bordered.trace-table
%tr
-@empaccrl.each do |ea|
%tr
%td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code
我也试过这个...但没用..
%table.table.table-bordered.trace-table
%tr
-@empaccrl.each do |ea|
- if ea.accrual_code = "PERSDAY3"
%tr
%td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code = "Personal"
- else
%tr
%td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code = "Vacation"
你很接近!问题是实例变量 @accrual_code
没有值。 Rails 不为属性设置实例变量。您可以改为使用 self[attribute_name]
:
访问该值
def accrual_code
case self[:accrual_code]
when "PERSDAY3" then "Personal"
when "VACATION1" then "Vacation"
else self[:accrual_code]
end
end
问题是我有一个名为 empaccrl 的模型,table 称为 accrl。在 accrl 中,我有一个名为 accrual_code 的列,该列中的数据是 PERSDAY3 或 VACATION1 ...如何将它们的名称更改为 Personal 和 Vacation 而不必更改我的数据库中的数据...这是我到目前为止所拥有的,但似乎不起作用。任何帮助将不胜感激!
这是我的 empaccrl 模型
class Empaccrl < ActiveRecord::Base
establish_connection :dev
self.table_name = 'accrl'
belongs_to :entry
def accrual_code
if @accrual_code == "PERSDAY3"
accrual_code = 'Personal'
end
if @accrual_code == "VACATION1"
accrual_code = 'Vacation'
end
end
这是我的看法
%table.table.table-bordered.trace-table
%tr
-@empaccrl.each do |ea|
%tr
%td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code
我也试过这个...但没用..
%table.table.table-bordered.trace-table
%tr
-@empaccrl.each do |ea|
- if ea.accrual_code = "PERSDAY3"
%tr
%td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code = "Personal"
- else
%tr
%td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code = "Vacation"
你很接近!问题是实例变量 @accrual_code
没有值。 Rails 不为属性设置实例变量。您可以改为使用 self[attribute_name]
:
def accrual_code
case self[:accrual_code]
when "PERSDAY3" then "Personal"
when "VACATION1" then "Vacation"
else self[:accrual_code]
end
end