Я изучаю рельсы и немного разбираюсь в книге и создаю простое приложение с добавленной функциональностью, поскольку я увеличиваю свои знания. Я пишу простое приложение для блога, и у меня есть поле в форме с именем date, я не хочу, чтобы это было поле, я хочу, чтобы он получил дату с сервера и автоматически помещал его в базу данных. Как мне это сделать? Я думал о скрытом поле, но затем не знаю, как обрабатывать дату и вставлять ее в скрытое поле. Это неправильный способ обойти вещи?
Спасибо заранее,
ДинТекущая дата в виде рельсов
ответ
Я бы не использовать скрытое поле, потому что даже если он скрыт пользователь может управлять этим. Я думаю, что лучший способ решить эту проблему, игнорировать дату в форме и добавить дату вам вашу модель в действии контроллера прямо перед сохранением объекта:
def SomeController
#...
def create
@model = Model.new params[:model]
@model.date_field_name = Time.now
if @model.save
# whatever should be done if validation passes or
redirect_to @model
else
# whatever should be done if validation fails or
render :new
end
end
#...
end
Но вы не должны делать любое из этого, потому что рубин на рельсах предлагает две колонки created_at
и updated_at
. created_at
будет установлен, когда объект будет создан, и updated_at
будет установлен каждый раз при обновлении этого объекта.
В Rails, если вы даете свои модели атрибутам с определенными именами, тогда ActiveRecord дает им особое поведение. Есть четыре различных даты/связанных со временем из них:
created_on
: получает автоматически устанавливается на дату записи был созданcreated_at
: получает автоматически устанавливается на дату и время записи был созданupdated_on
: получает автоматически устанавливается на дату записи был обновленupdated_at
: получает автоматически устанавливается на дату и время записи был обновлен
Обычно пары created_at
/updated_at
автоматически добавляются в модель по объявлению t.timestamps
в связанной с моделью ActiveRecord Migration.
здесь вид (новый) в виде отображения текущей даты:
<% form_for(@recipe) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<p><b>date</b><br/>
<%= f.datetime_select :date %>
</p>
<p>
<%= f.label :instructions %><br />
<%= f.text_area :instructions %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', recipes_path %>
и контроллер:
def new
@recipe = Recipe.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @recipe }
end
end
- 1. дисплей текущая дата -1 в
- 2. Текущая дата в datepicker
- 3. Текущая дата в конструкторе
- 4. Текущая дата в javascript
- 5. текущая дата в app.config
- 6. Текущая дата как дата объекта
- 7. Дата и текущая дата в Mysql
- 8. SQL текущая системная дата
- 9. YAML текущая дата
- 10. Пакет: Xcopy текущая дата
- 11. AngularJS текущая дата проверки
- 12. Xpath текущая дата
- 13. Текущая системная дата Clojure
- 14. Как проверить, текущая ли текущая дата
- 15. Mysql текущая дата запуска
- 16. Excel Count Текущая дата
- 17. FPDF текущая дата неверна
- 18. IXR_date() только текущая дата
- 19. Текущая дата не обновляется
- 20. текущая дата + 2 месяца
- 21. drools cep текущая дата
- 22. MySQL Текущая дата
- 23. Текущая дата в Java 1.4
- 24. YAML текущая дата в блоге
- 25. Текущая дата в Oracle Db
- 26. Встраивание рельсов в виде
- 27. Перенаправление, если дата <= текущая дата
- 28. MySQL выберите ID, где дата текущая дата
- 29. Текущая дата Вычитание 1 день
- 30. Макро с сохранением Текущая дата
Is updated_at установлен, когда объект добавляется в базу данных? Как мне интересно, могу ли я просто изменить свое мнение на заказ update_at? – Dean
Да, когда объект добавляется в базу данных 'updated_at', это то же самое, что' created_at' – jigfox