Last active
January 16, 2017 18:22
-
-
Save seanmckinley/67b49671c101eafe66c9bba36f8a91b8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class CreateReleaseSteps < ActiveRecord::Migration[5.0] | |
def change | |
create_table :release_steps do |t| | |
t.belongs_to :release, index: true | |
t.string :name | |
t.string :loadbalancer | |
t.string :comment | |
t.integer :release_id | |
end | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# app/model/release.rb | |
class Release < ApplicationRecord | |
has_many :release_steps | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# app/model/release_step.rb | |
class ReleaseStep < ApplicationRecord | |
belongs_to :release | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ReleaseStepsController < ApplicationController | |
before_action :set_release_step, only: [:show, :update, :destroy] | |
def create | |
@release_step = @release.release_steps.create(release_step_params) | |
if @release_step.save | |
render json: @release_step, status: :created, location: @release_step | |
else | |
render json: @release_step.errors, status: :unprocessable_entity | |
end | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config/routes | |
Rails.application.routes.draw do | |
resources :releases do | |
resources :release_steps | |
end | |
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# HTTP call to create a release step | |
curl localhost:3000/release_steps -X POST -H "Content-Type: application/json" -d '{"name": "test-name", "loadbalancer":"test-lb","comment":"test-comment"}' | |
# So...shouldn't I be able to do this in the ReleaseStep controller? | |
def create | |
@release_step = @release.release_steps.create(release_step_params) | |
if @release_step.save | |
render json: @release_step, status: :created, location: @release_step | |
else | |
render json: @release_step.errors, status: :unprocessable_entity | |
end | |
end | |
# Because I get this | |
NoMethodError: undefined method `release_steps' for nil:NilClass |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment