Understanding rails migration statement (:null => false)
migration, ruby-on-rails-3
Solution
Edit: I had taken the question to be about syntax and translation since it originally mentioned CoffeeScript. For purpose, refer to Peter Bloom's answer.
I am not sure what the `:null => false` means exactly.
The `=>` operator is a key/value separator in Ruby, defining a `Hash` with a `:null` key set to `false`. It's similar to `:` for an `Object` literal in CoffeeScript/JavaScript -- `{ null: false }`.
When used in an argument list, it's one option for allowing/imitating named arguments in Ruby.
The other main difference is that CoffeeScript/JavaScript use `String`s for keys while Ruby typically uses Symbols -- `"null"` (cs/js) vs. `:null` (rb).
So, the syntactic equivalent in CoffeeScript would be:
x.datetime "new", null: false
x.datetime "update", null: false
In JavaScript, that's:
x.datetime("new", { null: false });
x.datetime("update", { null: false });
Problem
I am trying to understand the following statement, it is from a rails migration file: ``` x.datetime "new", :null => false x.datetime "update", :null => false ``` I understand the the first part of both statements (everything before the comma) but I am unsure on the null portion ``` :null => false ``` Is this basically saying "if it does not exist, then it is false?" The logic just seems a bit strange, any clarification on this would be greatly helpful.