ruby-on-rails - 就地编辑时间对象

标签 ruby-on-rails time edit-in-place best-in-place

我有一个应用程序,用于为多个员工计划轮类。我有一个 Shift 模型,其中将 shiftstartshiftend 存储为 Time 对象。

我在一个页面上显示用户类次,并在表格中显示几天。这个想法是,用户可以使用 Best In Place 直接在此表中编辑 shiftstartshiftend gem 。

但我似乎无法弄清楚在处理 Time 对象时如何使其工作 - 任何人都对此有一些经验或建议。

我有以下代码:

查看:

<% @myShifts.where(:shiftdate => date).order(:shiftstart).each do |shift| %>
  <div class="shift-item span">
    <div class="hider">
      <p>
        <i class="icon gear"></i>
          <%= best_in_place shift.shiftstart.strftime("%H.%M"), :type => :input %> - <%= best_in_place shift.shiftend.strftime("%H.%M"), :type => :input %>
      </p>
    </div>
  </div>
<% end %>

架构:

create_table "shifts", :force => true do |t|
  t.time     "shiftstart"
  t.time     "shiftend"
  t.integer  "type_id"
  t.integer  "user_id"
  t.string   "note"
  t.datetime "created_at", :null => false
  t.datetime "updated_at", :null => false
  t.date     "shiftdate"
end

我收到“undefined method `{:type=>:input}' for "08.00":String”错误,并且我已经尝试将 Best In Place Type 切换为其他类型输入 - 没有帮助..

最佳答案

best_in_place 方法采用两个强制参数;一个对象(shift 在你的情况下)和一个字段(shiftstartshiftend),然后是可选的选项哈希(:type = > :输入)。所以你的代码需要像这样:

<%= best_in_place shift, :shiftstart, :type => :input, :display_with => Proc.new { |f| f.strftime("%H.%M") } %>

关于ruby-on-rails - 就地编辑时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14002890/

相关文章:

ruby-on-rails - 扩展间隙 gem Controller

ruby-on-rails - 程序 'rails' 可以在以下包中找到 - 某些应用程序和 RVM 有问题吗?

ruby-on-rails - 无法在 vagrant 上运行 sidekiq

ios - 就地 UITableView 编辑 : Adding a row crash

ruby-on-rails - 如何让 url_for 与模块一起工作?

time - 临时计时器方法不准确

java - 我可以使用 mockito 来匹配具有自动更新时间戳的对象吗?

android - 将带时间的字符串转换为分钟

wpf - 将弹出窗口位置锁定到元素,或伪造带有图层的弹出窗口以在 ItemsControl 中进行就地编辑

ruby-on-rails-3 - 带有嵌套资源的 Rails best_in_place gem