рендеринг определенных полей с помощью Rails - PullRequest
0 голосов
/ 12 марта 2010

Если у меня есть объект, скажите

@user

и я хочу, чтобы в нем отображались только определенные поля, скажем, имя_имя и фамилия (я использую AMF)

render :amf => @user

Например, у меня есть свойство для @user, которое называется 'dob' (дата рождения). Я хотел бы использовать его внутри бизнес-логики контроллера, но не хочу отправлять его клиенту (в данном случае Flex ) Я могу defenitaly сделать что-то вроде этого перед рендерингом:

@user.dob = nil

Но я подумал, что должен быть лучший способ сделать это.

как мне это сделать?

Я знаю, что могу использовать: выберите при выполнении 'find', но мне нужно использовать другое поле на стороне сервера, но я не хочу отправлять их с AMF на сторону клиента, и я не хочу делать вторая «находка»

Спасибо

Tam

1 Ответ

1 голос
/ 12 марта 2010

Эта статья содержит подробную информацию о подходе.

Вы настроили файл config / rubyamf_config.rb следующим образом:

require 'app/configuration'
module RubyAMF
  module Configuration
    ClassMappings.ignore_fields   = ['created_at','updated_at']
    ClassMappings.translate_case  = true
    ClassMappings.assume_types    = false
    ParameterMappings.scaffolding = false

    ClassMappings.register(
      :actionscript  => 'User',
      :ruby          => 'User',
      :type          => 'active_record',
      :associations  => ["employees"],
      :ignore_fields => ["dob"]
      :attributes    => ["id", "name", "location", "created_at", "updated_at"]
    )

    ClassMappings.force_active_record_ids = true
    ClassMappings.use_ruby_date_time = false
    ClassMappings.use_array_collection = true
    ClassMappings.check_for_associations = true
    ParameterMappings.always_add_to_params = true
   end
end
...