Ruby on rails rails表单中的当前日期
Ruby on rails rails表单中的当前日期,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习rails,并在书的另一部分进行探索,随着知识的增长,我创建了一个简单的应用程序,并增加了功能。我正在写一个简单的博客应用程序,我有一个名为date added的字段,我不希望它成为一个字段,我希望它从服务器获取日期,并将其自动放入数据库。我该怎么做呢?我正在考虑一个隐藏字段,但不确定如何处理日期并将其插入隐藏字段。这是错误的做事方式吗? 提前感谢,, Dean我不会使用隐藏字段,因为即使它是隐藏的,用户也可以操纵它。我认为解决此问题的最佳方法是,在保存对象之前,忽略表单中的日期,并在
我正在学习rails,并在书的另一部分进行探索,随着知识的增长,我创建了一个简单的应用程序,并增加了功能。我正在写一个简单的博客应用程序,我有一个名为date added的字段,我不希望它成为一个字段,我希望它从服务器获取日期,并将其自动放入数据库。我该怎么做呢?我正在考虑一个隐藏字段,但不确定如何处理日期并将其插入隐藏字段。这是错误的做事方式吗?
提前感谢,,
Dean我不会使用隐藏字段,因为即使它是隐藏的,用户也可以操纵它。我认为解决此问题的最佳方法是,在保存对象之前,忽略表单中的日期,并在控制器操作中将日期添加到您的模型中:
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
但是您不必做任何事情,因为RubyonRails在上提供了两列
created\u和updated\u
<创建对象时将设置“代码>创建位置”
,每次更新此对象时将设置“代码>更新位置”。在Rails中,如果您为模型属性指定了某些名称,则ActiveRecord将为其提供特殊行为。有四种不同的与日期/时间相关的日期/时间:
:自动设置为记录的创建日期created\u on
:自动设置记录的创建日期和时间created\u at
:自动设置为记录的更新日期updated\u on
:自动设置记录更新的日期和时间updated\u at
处创建的
在处更新的对会通过模型关联的t.timestamps
声明自动添加到模型中。以下是显示当前日期的表单视图(新):
<% 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 %>
将对象添加到数据库时是否在设置时更新?我想知道我是否可以将视图更改为order by updated_at?是的,当对象添加到数据库时,
updated_at
与created_at
def new
@recipe = Recipe.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @recipe }
end
end