ruby-on-rails - 在边栏中添加表单

标签 ruby-on-rails activeadmin

在我的 ActiveAdmin 应用程序中,我需要在边栏中有一个表单(仅用于 show 方法),它将显示一个(目前)日期选择器。一旦用户点击日期选择器,整个页面应该重新加载并考虑到所选日期(在显示 Controller 中)。

知道如何在侧边栏中添加这个简单的表单吗?

编辑

我尝试了以下方法,但不确定该表单如何针对当前模型以外的专用 Controller 。

sidebar :history, :only => :show do
  form do |f|
    f.input :start_date, :as => :datepicker
  end
end

侧边栏中的表单如何定位当前模型 Controller 以外的另一个 Controller ?

最佳答案

我假设您有一个表演 Controller ,并不是指表演 Action 。

把view变成partial叫“whatever”(我叫这个)

所以,你的 whatever.erb.html 看起来像这样

<%= render "whatever" %>

如果您使用 Jquery Ui datepicker ,可以加一个onSelect函数

$(".date").datepicker({ 
            dateFormat: "yy-mm-dd", 
            onSelect: function() {
            $('#range_form').submit();          
            }
       }).attr( 'readOnly' , 'true' )

如果你想要一个范围,在你的 View 中添加一个带有两个日期字段的表单标签,否则你只添加一个

<%= form_tag('/range', :id => "range_form", :remote => true) do -%>
   <%= text_field_tag 'from', Date.now.strftime("%Y-%m-%d"),:class => "date"%>
   <%= text_field_tag 'to', Date.now.strftime("%Y-%m-%d"), :class => "date"%>
<% end %>

为此,您必须在 routes.rb 中添加一条路线

match "/range/" => "show#todo_range", :as => :range

在你的显示 Controller 中

def range
    time_range = ((Date.parse(params[:from]).midnight..Date.parse(params[:to]).midnight)
    @whatever = Whatever.where(:date => time_range)
end

然后添加一个js View 来处理回调

$(".maindiv").empty().append(<%=j(render @whatever)%>)

我还没有测试过这段确切的代码,因此请注意拼写错误。

如果我需要编辑,祝你好运和评论

关于ruby-on-rails - 在边栏中添加表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934980/

相关文章:

mysql - 更改 Rails 中现有列的位置

ruby-on-rails - 如何格式化 Ruby on Rails ActiveAdmin 表单中的日期时间字段?

ruby - ActiveAdmin、CanCan、Rolify - 无法有条件地禁用过滤器

ruby-on-rails - Rails Active Admin 如何使用 2 列(来自关联的 1 列)进行 config.sort_order

ruby-on-rails - 在 ActiveAdmin 的标题菜单中添加自定义项

jquery - Rails jquery 自动完成字段扭曲

ruby-on-rails - Rails SQLite Dev 和 Test 数据库是相同的。为什么?

Ruby-on-Rails:ActiveAdmin 父类(super class)不匹配类型错误

ruby-on-rails - 找不到 gem "multi_json": 的兼容版本

ruby-on-rails - Rails 3.1.3 中的事务代码是否良好且最优?