The way you're hardcoding the options into the view will tend to make lookups difficult and localization/internationalization impossible.
There are many ways to do it better. Here are ones for you to consider.
Use a module that provides an enumeration, such as:
module Gender
UNKNOWN = 0
MALE = 1
...
Use a constant hash lookup, such as:
GENDER = {
0 => "Not Known",
1 => "Male",
...
Use a constant array where the index is the id, such as:
GENDER = [
"Not Known",
"Male",
...
Use a an array of structures, such as attribute key-value pairs:
GENDER = [
{id: 0, label: "Not Known"},
{id: 1, label: "Male"},
...
Use a database table, such as:
class Gender < ActiveRecord::Base
# has fields for id and name
end
Use Rails 4.1 enum:
class User < ActiveRecord::Base
enum gender: [ :unknown, :male, ... ]
...
Each of these options has strengths.
In general I suggest using the database table approach for a typical web app, or typical API; the table approach has many advantages for easier scoping, searching, sorting, automatic display using admin tooling, etc.
In general I suggest using the module approach if you need high speed, or have very tight storage constraints, or want to keep localizaiton/internationalization strings elsewhere such as a YAML file; the module approach stores the smallest amount of information necessary.
For sex and gender, heads up that these vary by region and userbase. For instance, some countries have a third gender, some contexts require a "Decline to answer", some groups distinguish between sex and gender, etc.