1
0
mirror of https://github.com/fspc/BikeShed-1.git synced 2025-02-28 16:53:23 -05:00

Modifed bikes create to use jbuilder & follow jsonapi.org

This commit is contained in:
Jason Denney 2014-02-26 00:06:25 -05:00
parent b88bf545d2
commit 14869cf8b6
3 changed files with 11 additions and 13 deletions

View File

@ -2,7 +2,7 @@ $('.btn').button();
$("#add_bike_submit").click(function(){ $("#add_bike_submit").click(function(){
json_data = { bike: { json_data = { bikes: [{
serial_number: $("#serial_number").val(), serial_number: $("#serial_number").val(),
bike_brand_id: parseInt($("#bike_brand_id").val()), bike_brand_id: parseInt($("#bike_brand_id").val()),
shop_id: parseInt($("#shop_id").val()), shop_id: parseInt($("#shop_id").val()),
@ -12,15 +12,16 @@ $("#add_bike_submit").click(function(){
bike_condition_id: parseInt($('input[name=bike_condition]:checked').val()), bike_condition_id: parseInt($('input[name=bike_condition]:checked').val()),
bike_purpose_id: 1, bike_purpose_id: 1,
bike_wheel_size_id: parseInt($("#bike_wheel_size_id").val()), bike_wheel_size_id: parseInt($("#bike_wheel_size_id").val()),
}}; }]};
$.ajax({ $.ajax({
url: $("#add_bike_submit").data("url"), url: $("#add_bike_submit").data("url"),
type: "POST", type: "POST",
data: json_data, data: JSON.stringify(json_data),
contentType: 'application/json',
dataType: "json", dataType: "json",
success: function(data, status, xhr){ success: function(data, status, xhr){
window.location = "/bikes/"+ data.bike.id; window.location = data.bikes[0].href;
}, },
error: function(data, status ){ error: function(data, status ){
displayFormErrors(data.responseJSON); displayFormErrors(data.responseJSON);

View File

@ -5,17 +5,13 @@ class Api::V1::BikesController < Api::V1::BaseController
before_filter :check_bike_permission before_filter :check_bike_permission
def create def create
if bike = params[:bike] if params[:bikes] && bike = params[:bikes].first
@bike = Bike.new(bike)
b = Bike.new(bike) if !@bike.save
if !b.save render json: { errors: @bike.errors }, status: 422 and return
render json: { errors: b.errors }, status: 422 and return
else
render json: { bike: b.as_json }, status: 200 and return
end end
else else
render json: { errors: ["Expected bike in submitted data" ]}, status: 422 and return render json: { errors: [EXPECTED_BIKE]}, status: 422 and return
end end
end end

View File

@ -18,6 +18,7 @@ Velocipede::Application.routes.draw do
post 'reset' => "users#password_reset", :as => "api_password_reset" post 'reset' => "users#password_reset", :as => "api_password_reset"
post 'bikes/create' => "bikes#create", as: "api_create_bike" post 'bikes/create' => "bikes#create", as: "api_create_bike"
post 'bikes/:id' => "bikes#show", as: "api_bike"
end end
end end