Рубиновые хэши великолепны, а Ruby с DataMapper еще больше ... Это касается создания экземпляра свойства DateTime в Ruby с использованием хэшей. Он связан с DataMapper.Ruby - DataMapper - Form - Create New - формат HTML для заполнения объекта DateTime в классе модели
У меня есть модальное, User
, что есть день рождения, который хранится в DateTime
class User
include DataMapper::Resource
property :id, Serial
# Some other properties
property :date_of_birth, DateTime
property :gender, Enum[:male, :female, :other], {
default: :other,
}
property :children, Integer
end
Для заполнения формы я использую некоторые вещи, как это с HTML
<form method="post">
<input type="text" name="user[name]" id="user-name">
<!-- other fields -->
<select name="{what to use for year?}" id="user-birth-year>
<option value="1980">1980</option>
<!-- other options -->
</select>
<select name="{what to use for month?}" id="user-birth-month>
<option value="1">January</option>
<!-- other options -->
</select>
<!-- Other fields -->
</form>
В register.rb
(маршрут) Я делаю что-то вроде этого ...
post '/auth/register' do
user = User.new(params['user'])
# Other stuff
end
Как я понимаю, пользователь должен быть похож на свои поля. Итак, как было бы названо поле date_of_birth для достижения этого.
Мое предположение заключалось в том, чтобы использовать что-то вроде этого, но, похоже, оно не работает.
:date_of_birth = {
:year => '2010'
:month => '11'
:date => '20'
}
Какой будет дано по имени user[data_of_birth][year]
user[date_of_birth][month]
и user[date_of_birth][date]
для избранных списков.
Спасибо за информацию, я хотел бы знать, почему это может быть плохо. Это похоже на то, что пользователь будет публиковать данные, которые не в форме, манипулируют системой, отличной от желаемого поведения (тупой пример: как получить премиальный аккаунт без оплаты). Он должен работать, я буду тестировать и принимать его завтра утром. –
Именно по этой причине. Удачи с вашим проектом! –