- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 time_select 和 jquery datepicker 的表单,
我希望能够在提交表单时将 time_Select 和日期选择器的值合并到 ActiveRecord 模型的一个日期时间中...
有没有一种优雅的方法可以做到这一点?我应该在客户端还是服务器端进行...我想让我的操作就这么简单:
def create
@drive = Drive.new(params[:drive]))
if @drive.save
flash[:notice] = 'Drive created !'
render :action => :show
else
render :action => :new
end
end
我不知道...我应该在模型中使用虚拟属性并在提交表单时在 before_save 或在 javascript 中合并它们,或者也许您有更好的主意...您觉得怎么样?
谢谢
迈克。
最佳答案
简短的回答是:没关系,它们都同样好。
您有 3 个合理的地方可以处理这个问题。
无论您使用什么方法,您都必须在 Controller /模型中处理数据,因为所有参数都以字符串形式接收。
在模型和 Controller 变体中,您需要做出额外的决定。将 DateTime 从 6 个字段拼凑在一起或使用一对字符串(一个包含值,一个包含 strptime 格式。)
知道DateTime的构造函数方法从一组单独的字段构建日期时间对象所需的工作量与从日期时间字符串和格式字符串构建对象所需的工作量大致相同。如何构建 DateTime 对象并不重要。
所以这一切都归结为个人喜好问题。
我个人认为这个逻辑属于模型。我不会把它放在 JavaScript 中,因为我想确保如果 JavaScript 被禁用,我的代码不会中断。 Controller 同样适合。但我觉得将这种逻辑转移到模型可以更稳健地处理日期和验证。我还发现 strptime 构造函数比 7 个参数的民用构造函数更容易阅读。但土木构造函数不需要我确保格式小时/分钟/秒的长度恰好是 2 位数字。无论哪种方式,我都会将年、月、日、小时、分钟和秒偏移量作为单独的 attr_accessors 字段传递,以便在必要时可以处理这些数据。
示例代码
class Drive < ActiveRecord::Base
...
attr_accessor :year, :month, :day, :hour, :minute, :second, :locale_offset
before_validation :build_date
validates :future_time
def build_date
begin
self.date = DateTime.civil( year.to_, month.to_i, day.to_i,
hour.to_i, minute.to_i, second.to_i, user.locale_offset)
rescue
errors.add(:date, "Invalid date")
return false
end
end
def future_time
unless date > DateTime.now
errors.add(:date, "Date occurs in the past.")
end
end
end
关于jquery - time_select() 帮助器 + jQuery UI 日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1740420/
我正在尝试使用 time_select 将时间输入到模型中,然后该模型将执行一些计算。 time_select 帮助器准备返回的参数,以便它可以用于对 Active Record 对象的多参数分配。
有没有办法将范围应用到 time_select 助手? 我正在尝试将其设置为有效的工作时间,例如: time_select('object_name', 'method', { :start_hour
我想将 Bootstrap 表单控件类添加到 Rails time_select 控件。我尝试了这个,但它不起作用。 {:hour => '9', :minute => '30'} , clas
我的 Rails repo 示例在这里: https://github.com/johndel/strange_timeselect 奇怪行为的复制可以在这里显示: https://captain24
我遇到了对我来说似乎很简单的问题,但我无法弄清楚我做错了什么。在我的应用程序中,用户可以通过一个简单的 form_for 添加他们的类(class)。他们可以为类(class)的讲座输入 start_
我有一个带有 time_select 和 jquery datepicker 的表单, 我希望能够在提交表单时将 time_Select 和日期选择器的值合并到 ActiveRecord 模型的一个日
有人知道任何只有一个选择框的 Ruby on Rails time_select 插件吗?所以选择框包含“9:00 AM”、“9:15 AM”等条目? 我见过一些插件,但没有这样的。 谢谢! 最佳答案
谁能给我指出一个从 Ruby on Rails time_select 中去除不需要的值的解决方案? 基本上,time_select 显示从 00 到 24 的所有时间,但在我的应用中我需要防止用户选
几个小时以来,我一直在寻找这个问题的解决方案。甚至在 stackoverflow 上也有很多建议,我尝试了所有,但没有一个对我有用,我不知道为什么。 我的服务器上运行着当前版本的 RoR [4.1.5
我想从 rails time_select 助手的输出中删除“:”。构建分钟选择框时,助手似乎会自动输出。 有什么想法吗? 谢谢! 最佳答案 这些助手的输出通常只是字符串,所以你应该能够说: [编辑
我正在用 Rails 4 Ruby 2 构建一个 CAD 应用程序 我想做的是给用户一个按钮,让他在屏幕上按下(因为大多数用户将使用触摸屏计算机)来记录现场时间和清除场景时间。目前我有默认的 Rail
我正在尝试将表单中的时间字段设为可选。我这样做: 然而,当它被提交时,由于 time_select 会自动提交默认日期信息,这就是 params 的样子: end_time(1i): '2000'
Bootstrap 有类 'form-control' 可以添加到选择框来给它们设置样式。对于以下领域,我能够成功地做到这一点: 但是我有以下用于 time_select 的表单域。我需要将一个
我是一名优秀的程序员,十分优秀!