Sha256: fa6da48077cd33cf5b964831fe816266fcc31f556db8e0c01260e265532df18b
Contents?: true
Size: 1.98 KB
Versions: 7
Compression:
Stored size: 1.98 KB
Contents
class API::V1::<%= resource.pluralize %>Controller < Faalis::APIController before_filter :build_resource, :only => :create load_and_authorize_resource :except => [:destory] # GET /api/v1/<%= resource.pluralize.underscore %> def index respond_with(@<%= resource.pluralize.underscore %>) end def create <% fields.each do |name, type| %><% if type == "has_many" %> <%= name.underscore %> = <%= name.singularize.camelize %>.where({:id => params[:<%= resource.underscore %>][:<%= name %>]}) @<%= resource.underscore %>.<%= name.underscore %> = <%= name.underscore %><% end %><% end %> if @<%= resource.underscore %>.save respond_with(@<%= resource.underscore %>) else respond_to do |format| format.json { render :json => {:fields => @<%= resource.underscore %>.errors}, :status => :unprocessable_entity } end end end def show respond_with(@<%= resource.underscore %>) end def update <% fields.each do |name, type| %><% if type == "has_many" %> <%= name.underscore %> = <%= name.singularize.camelize %>.where({:id => params[:<%= resource.underscore %>][:<%= name %>]}) @<%= resource.underscore %>.<%= name.underscore %> = <%= name.underscore %><% end %><% end %> if @<%= resource.underscore %>.update(resource_params) respond_with(@<%= resource.underscore %>) else respond_to do |format| format.json { render :json => {:fields => @<%= resource.underscore %>.errors}, :status => :unprocessable_entity } end end end def destroy ids = params[:id].split(",") @<%= resource.pluralize.underscore %> = ::<%= resource %>.where(:id => ids) authorize! :destroy, @<%= resource.pluralize.underscore %> @<%= resource.pluralize.underscore %>.destroy_all end def build_resource @<%= resource.underscore %> = ::<%= resource %>.new(resource_params) end def resource_params params.require(:<%= resource.underscore %>).permit(:id<%= fields_as_params(:relations => true) %>) end end
Version data entries
7 entries across 7 versions & 1 rubygems