Skip to content

Instantly share code, notes, and snippets.

@grobie
Created June 13, 2012 14:24
Show Gist options
  • Save grobie/2924397 to your computer and use it in GitHub Desktop.
Save grobie/2924397 to your computer and use it in GitHub Desktop.
class MyController
validate :username => String,
:permalink => String,
:user => {
:age => Fixnum,
:numbers => Array
}
:on => :update
def update
# this will never fail, as it was validated before.
params[:user][:numbers].last
end
end
@pcalcado
Copy link

Consider:

class BananaController
  def create
    validate_args banana_id: String,
                        banana_colour: String,
                        banana_owner: {
                          username: 'pcalcado',
                          city: 'pcalcado'
                        }
  end

  def edit
    validate_args banana_id: String,
                        new_banana_colour: String,
                        banana_owner: {
                          username: 'pcalcado',
                          city: 'pcalcado'
                        }
  end
end

Instead:

class BananaController
  def create
    validate_args banana_id: String,
                        banana_colour: String,
                        banana_owner: BananaOwnerParams
  end

  def edit
    validate_args banana_id: String,
                        new_banana_colour: String,
                        banana_owner: BananaOwnerParams
  end
end

Copy link

ghost commented Jun 13, 2012

Have a look at https://github.com/solnic/virtus (for coercions)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment