Исключая некоторые свойства ActiveRecord от xml, представляющего в направляющих

Добро пожаловать, Альберто Мартин Родригес,

@ Герт-Ян-Краайевельд прав. Вы можете запускать с правами администратора или даже лучше сохранять файлы где-нибудь в вашем пользовательском каталоге или в другом подходящем месте вместо корня вашего основного диска.

то есть. C: \ $ nombre_fichero -> C: \ Users {{YourUserName}} \ $ nombre_fichero

11
задан Paul 21 October 2008 в 15:31
поделиться

3 ответа

Можно передать массив образцовых названий атрибута к :only и :except опции, таким образом, для Вашего примера это было бы:

def show
  @person = Person.find(params[:id])
  respond_to do |format|
    format.xml { render :text => @person.to_xml, :except => [:phone] }
  end
end
14
ответ дан 3 December 2019 в 04:34
поделиться

"Рендеринг: xml" не работал, но to_xml действительно работал. Ниже пример

def show
  @person = Person.find(params[:id])
  respond_to do |format|
    format.xml { render :text => @person.to_xml(:except => [:phone]) }
  end
end
2
ответ дан 3 December 2019 в 04:34
поделиться

Мне просто интересно было то же самое, я внес изменения на уровне модели, чтобы мне не пришлось делать это в Контроллер, просто еще один вариант, если вам интересно.

модель

class Person < ActiveRecord::Base
 def to_xml
  super(:except => [:phone])
 end
 def to_json
  super(:except => [:phone])
 end
end

контроллер

class PeopleController < ApplicationController
  # GET /people
  # GET /people.xml
  def index
    @people = Person.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @people }
      format.json  { render :json => @people }
    end
  end
end

Я установил один из них для json и xml для каждого объекта, что отчасти удобно, когда я хочу отфильтровать вещи из каждого альтернативного форматированного ответа. Самое замечательное в этом методе то, что даже когда вы получаете коллекцию обратно, он вызывает этот метод и возвращает отфильтрованные результаты.

7
ответ дан 3 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: