【问题标题】:using jquery_datepicker in a form_tag form在 form_tag 表单中使用 jquery_datepicker
【发布时间】:2013-11-09 07:39:50
【问题描述】:

我正在尝试使用 jquery_datepicker gem 实现 rails 3.1 datepicker - 我想提供功能来指定可在各种视图中使用的日期范围(即开始和结束日期)。所以我建立了一个部分

app/views/shared/_date_range_form_content.html.erb

<div class='date_range'>
<%= form_tag "#{route}/#{id}" do %>
  <%= label_tag "Start Date" %>
  <%= datepicker_input nil, "start_date" %>
  <%= label_tag "End Date" %>
  <%= datepicker_input nil, "end_date" %>
  <%= submit_tag 'Go' %>
<% end %>
</div>

我正在使用 form_tag,因此我可以传递路由(即表单将被定向到的控制器) - 这使我能够在多个地方使用这个部分。

我面临的问题是 datepicker_input。 jquery_datepicker 提供了一个 form_for 类型的方法——但这里我使用了一个 form_tag。所以 Chrome 的 DevTools 窗口显示 Uncaught TypeError: Object [object Object] has no method 'datepicker'

我做错了什么?我如何将日期选择器放入此表单中?

提前致谢

史蒂夫

【问题讨论】:

    标签: jquery ruby-on-rails datepicker


    【解决方案1】:

    在 README 中你可以看到:

    将此添加到您的视图中。

    &lt;%= datepicker_input "user","birthday" %&gt;

    其中“user”是您的型号名称,“birthday”是您的型号名称 日期字段。

    所以form_for 不是必需的。

    datepicker_input 助手:

    def datepicker_input(object_name, method, options = {})
      datepicker(object_name, method, options)
    end
    

    我认为问题在于您将 nil 作为第一个参数 (object_name) 传递。尝试传递“有效”对象而不是 nil 来调试问题。

    【讨论】:

    • 使用非模型表单的问题,使用form_tag结构最容易完成。您可以通过创建一个类并添加一些 ActiveModel 模块和一个持久化的?方法 - 但它确实是一个faff。然后,您可以使用 date_picker 支持的 form_for。
    • 尝试添加 :foo 而不是 nil。
    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多