RubyonRails和jquery日期选择器

RubyonRails和jquery日期选择器,jquery,ruby-on-rails,datepicker,Jquery,Ruby On Rails,Datepicker,我对rails几乎没有经验,我正在尝试在我的rails应用程序中使用jQueryDatePicker 我的应用程序有多个子任务,这些子任务都有与之关联的模式,我在这些模式上有datepicker字段 我想要的是,当我选择一个日期时,应该向我的控制器发出一个ajax调用,它应该将所选日期保存在我的数据库中。 然后在保存时,我通过ajax刷新我的页面 这是密码 这里的页脚是模式页脚,我刚刚为它创建了一个不同的部分,这样我可以在保存日期后刷新它,以便所选日期在这里得到反映 /_footer.html.

我对rails几乎没有经验,我正在尝试在我的rails应用程序中使用jQueryDatePicker

我的应用程序有多个子任务,这些子任务都有与之关联的模式,我在这些模式上有datepicker字段

我想要的是,当我选择一个日期时,应该向我的控制器发出一个ajax调用,它应该将所选日期保存在我的数据库中。 然后在保存时,我通过ajax刷新我的页面

这是密码

这里的页脚是模式页脚,我刚刚为它创建了一个不同的部分,这样我可以在保存日期后刷新它,以便所选日期在这里得到反映

/_footer.html.erb/

/UpdatedTestart.js.erb/

这是我的解决办法

1.First i removed the different action which i made for updatedatestart and updatedateend.Instead now i am using the same update method provided by ruby for both of them.

/*subtask_controller.rb*/

def update

        @subtask=Subtask.find(params[:id])
        #@task=@subtask.task
        #@subtask.description=params[:subtask][:description]
        respond_to do |format|
            #if @subtask.update_attribute(:description,params[:subtask][:description])
            if @subtask.update_attributes(params[:subtask])
                format.html{redirect_to @project}
                format.js
            else
                render new
            end
        end
My_footer.html.erb文件

<div class="row" id="footer_<%=subtask.id%>">
    <div class="col-md-5" style="margin-bottom:-20px;float:left;">
        <a class="col-md-12 col-xs-12 btn btn-success" style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">Start Date
        </a>
        <%=form_for subtask,:remote=>:true,:method => :put do |f| %>
        <%=f.hidden_field :name%>
        <%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
        <%=f.hidden_field :task_id%>
        <%=f.text_field :start_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerstart_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
        <%=f.hidden_field :end_date%>
        <%end%>
    </div>
    <div class="col-md-5" style="margin-bottom:-20px;float:right;">
        <a class="col-md-12 col-xs-12 btn btn-danger"style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">End Date
        </a>
        <%=form_for subtask,:remote=>:true,:method => :put do |f| %>
        <%=f.hidden_field :name%>
        <%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
        <%=f.hidden_field :task_id%>
        <%=f.text_field :end_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerend_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
        <%=f.hidden_field :start_date%>
        <%end%>
    </div>
    <script>
    $(function(){
        $('.datepicker_<%=subtask.id%>').datepicker({
            onClose: function(strDate, datepicker) {
                if(strDate == "") {
                return;
                }
                $(this).parent().trigger('submit.rails')
            }
        });

    });
    </script>
</div>

开始日期
:true,:method=>:put do | f |%>
“myarea%”
“datepicker_35;{subtask.id}表单控件”,:id=>“datepickerstart_35;{subtask.id}”,:style=>“边框左上半径:0px;边框右上半径:0px;”%>
结束日期
:true,:method=>:put do | f |%>
“myarea%”
“datepicker_35;{subtask.id}表单控件”,:id=>“datepickerend_35;{subtask.id}”,:style=>“边框左上半径:0px;边框右上半径:0px;”%>
$(函数(){
$('.datepicker_').datepicker({
onClose:函数(strDate、日期选择器){
如果(标准日期==“”){
返回;
}
$(this.parent().trigger('submit.rails'))
}
});
});
就是这样,这个解决方案对我很有效。

尝试使用(您可能可以消除控制器参数)而不是
表单标签

<%= form_for(subtask, {:action => 'updateDatestart'},:remote=>'true') do |f| %>
   <%= f.text_field :start_date, :class => "dateFilter form-control datepickerstart_#{subtask.id}"
<% end %>
'updatedTestart'},:remote=>'true')do | f |%>
“dateFilter表单控件datepickerstart_35;{subtask.id}”
助手的
表单_将读取记录的属性。您还将为块使用变量
f
,并使用
text\u字段
辅助对象,而不是
text\u字段标记

/*Solution that worked for me*/
1.First i removed the different action which i made for updatedatestart and updatedateend.Instead now i am using the same update method provided by ruby for both of them.

/*subtask_controller.rb*/

def update

        @subtask=Subtask.find(params[:id])
        #@task=@subtask.task
        #@subtask.description=params[:subtask][:description]
        respond_to do |format|
            #if @subtask.update_attribute(:description,params[:subtask][:description])
            if @subtask.update_attributes(params[:subtask])
                format.html{redirect_to @project}
                format.js
            else
                render new
            end
        end
<div class="row" id="footer_<%=subtask.id%>">
    <div class="col-md-5" style="margin-bottom:-20px;float:left;">
        <a class="col-md-12 col-xs-12 btn btn-success" style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">Start Date
        </a>
        <%=form_for subtask,:remote=>:true,:method => :put do |f| %>
        <%=f.hidden_field :name%>
        <%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
        <%=f.hidden_field :task_id%>
        <%=f.text_field :start_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerstart_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
        <%=f.hidden_field :end_date%>
        <%end%>
    </div>
    <div class="col-md-5" style="margin-bottom:-20px;float:right;">
        <a class="col-md-12 col-xs-12 btn btn-danger"style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">End Date
        </a>
        <%=form_for subtask,:remote=>:true,:method => :put do |f| %>
        <%=f.hidden_field :name%>
        <%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
        <%=f.hidden_field :task_id%>
        <%=f.text_field :end_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerend_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
        <%=f.hidden_field :start_date%>
        <%end%>
    </div>
    <script>
    $(function(){
        $('.datepicker_<%=subtask.id%>').datepicker({
            onClose: function(strDate, datepicker) {
                if(strDate == "") {
                return;
                }
                $(this).parent().trigger('submit.rails')
            }
        });

    });
    </script>
</div>
<%= form_for(subtask, {:action => 'updateDatestart'},:remote=>'true') do |f| %>
   <%= f.text_field :start_date, :class => "dateFilter form-control datepickerstart_#{subtask.id}"
<% end %>