我有一个字符串,需要将其转换为要存储在Ruby数据库中的日期属性。有一个javascript函数收集数据并将其提交给一个ruby方法,该方法又提交给数据库。然而,其中一个字段是"日期"字段。不是一个"DateTime"字段,所以我不能使用由js提供的Date()函数。我所拥有的字符串已经是所需的格式,它只是让db识别它。
html<form action="/submiteffort" id="effort_form" method="post">
<input type="hidden" id="week_commencing" name="week_commencing" value="x">
<input type="hidden" id="task_id" name="task_id" value="x">
<input type="hidden" id="effort_hours" name="hours" value="0">
</form>
<!-- Javascript code to submit the hidden form -->
<script>
function submiteffort( elem, name )
{
var date = getdate();
$("#week_commencing").val(date);
$("#effort_hours").val( $( elem ).val() );
$("#task_id").val( name );
$("#effort_form").submit();
return true;
}
获取当前日期()函数
function getdate()
{
var myspan = document.getElementById('startDate');
var span_textnode = myspan.firstChild;
var span_text = span_textnode.data;
myDateParts = span_text.split("/");
var d = myDateParts[0];
var dd = days(d);
var m = myDateParts[1];
var subSection2 = m.substring(1,0);
if (subSection2 == "0") {
mm = m;
}
else {
mm = "0" + myDateParts[1];
}
var yy = myDateParts[2];
var actDate = yy + "-" + mm + "-" + dd;
return actDate;
}
提交方法
def submit
effort = Effort.new
effort.user_id = 10 #current_user.id
effort.project_task_id = params[:task_id]
effort.week_commencing = params[:wc]
effort.hours = params[:hours]
effort.save
respond_to do |format|
format.html
format.js
end
end
我如何让我的数据库认识到,我想要的值需要一个"日期",并提交给数据库?
如果您以Date
识别的格式提交日期,则应该为您完成转换。这要求将week_commencing
声明为:date
类型的列。
查看您的log/development.log
,看看params
为所讨论的请求设置了什么。确保生成的日期正确地通过。