У меня есть контроллер для API, который выглядит следующим образом:
def index
respond_to do |format|
format.json { render :json => @groups.to_json(:only => [:id, :name, :description, :created_at, :updated_at])}
end
end
def show
respond_to do |format|
format.json { render :json => @group.to_json(:only => [:id, :name, :description, :created_at, :updated_at]) }
end
end
# @todo add store to item
def create
if @group.save
render :json => @group.to_json(:only => [:id, :name, :description, :created_at, :updated_at])
else
render :status => 406
end
end
def update
if @group.update_attributes(params[:group])
render :json => @group.to_json(:only => [:id, :name, :description, :created_at, :updated_at])
else
render :status => 406
end
end
def destroy
@group.destroy
render :text => ""
end
Как видите, я много раз повторяю себя.Я бы хотел сделать эти (и только эти) атрибуты доступными через модель, но не смог найти подходящего решения.Есть ли что-нибудь, чтобы защитить атрибуты от массового письма?Или я имею в виду массовое чтение?
Как отмечено в комментариях ниже, я хочу иметь модель с атрибутами name
и i_am_private
.Когда я отображаю эту модель как json - render :json => @model
- я хочу показать только name
.
Ruby 1.8.7 Rails 3