Скажем, у меня есть модель как это:
create_table :ninjas do |t|
t.string name
end
И класс Ниндзя с дополнительным свойством:
class Ninja < ActiveRecord::Base
def honorific
"#{name}san"
end
end
И в моем контроллере я просто хочу представить его к XML:
def show
render :xml => Ninja.find(params[:id])
end
Почетная часть не представляется. Это имеет смысл, так как это - просто метод, но является там способом обмануть его?
Я полностью для ответов на эффект, "Вы делаете это полностью неправильно". Я просто добавлю, что действительно хочу вычислить почетное динамическое, и не, как, сохранить его в базе данных или чем-то.
Вы можете использовать аргумент :methods
к to_xml
для этой сериализации. Вы можете либо вызвать его непосредственно в вашем действии...
render xml: Ninja.find(params[:id]).to_xml(methods: :honorific)
... либо переопределить to_xml
в вашем классе Ninja
, чтобы всегда включать его.
Посмотрите документацию для получения дополнительной информации.