加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails中提交表单后,Bootstrap模式不会被解雇

发布时间:2020-12-17 02:03:37 所属栏目:百科 来源:网络整理
导读:我在Rails 3应用程序中使用bootstrap模式时遇到问题.它目前处理一个审核表单,提交和更新数据库就好了,但提交表单时模式不会关闭.我已经尝试将其添加到表单提交按钮: :data = {:dismiss = "modal"} 但是它会在不执行更新操作的情况下关闭模态.这是我的模态代
我在Rails 3应用程序中使用bootstrap模式时遇到问题.它目前处理一个审核表单,提交和更新数据库就好了,但提交表单时模式不会关闭.我已经尝试将其添加到表单提交按钮:

:data => {:dismiss => "modal"}

但是它会在不执行更新操作的情况下关闭模态.这是我的模态代码:

<!-- Review Modal -->
<% if current_user == nil %>
<% else %>
<div id="reviewModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="reviewModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="reviewModalLabel">Write a review</h3>
  </div>
  <div class="modal-body">
  <%= form_for(review_ballot,:remote => true,:html => {:class => 'review_ballot'}) do |f| %>
    <h4>Your score:</h4>
    <%= f.label("score_1",content_tag(:span,'1'),{:class=>"review",:id=>"1"}) %>
    <%= radio_button_tag("review[score]",1,current_user_review == 1,:class => 'review_button')%>
    <%= f.label("score_2",'2'),:id=>"2"}) %>
    <%= radio_button_tag("review[score]",2,current_user_review == 2,:class => 'review_button')%>
    <%= f.label("score_3",'3'),:id=>"3"}) %>
    <%= radio_button_tag("review[score]",3,current_user_review == 3,:class => 'review_button')%>
    <%= f.label("score_4",'4'),:id=>"4"}) %>
    <%= radio_button_tag("review[score]",4,current_user_review == 4,:class => 'review_button')%>
    <%= f.label("score_5",'5'),:id=>"5"}) %>
    <%= radio_button_tag("review[score]",5,current_user_review == 5,:class => 'review_button')%>
  <br />
    <h4>What'd you think?</h4>
  <%= f.text_area :review_text,:rows => 3,:cols => 10 %>
  <%= hidden_field_tag :venue_id,@venue.id %>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <%= submit_tag "Save review",:class => "btn btn-warning" %>
    <% end %>
  </div>
</div>

这是review_ballot方法的场地助手

module VenuesHelper
  def review_ballot
    if @review = current_user.reviews.find_by_venue_id(params[:id])
      @review
    else
      current_user.reviews.new
    end
  end

  def current_user_review
    if @review = current_user.reviews.find_by_venue_id(params[:id])
      @review.score
    else
      "N/A"
    end
  end
end

我现在不知道该尝试什么.我用Google搜索过,没有运气.我该如何解决?

编辑:我的临时解决方案 – 我已删除:remote =>从模态真实并在控制器动作中重定向访问者,所以现在我不必担心它被解雇.

它显然很笨拙/笨拙,所以如果有人能帮助我解决这个问题,我仍然会喜欢它.愿意按需提供更多代码/信息.

解决方法

在您的情况下,我的意思是您没有上传任何图像.所以你可以简单地去ajax调用提交.这是一个简单的代码

$(document).ready(function(){

  $('#submit_button_id').click(function() {  
    var valuesToSubmit = $("#form_id").serialize();
    $("#modal_id").modal('hide') ;

    $.ajax({
      url: "/controller/method",data: valuesToSubmit,type: "POST/GET/PUT"
      }).success(function(data,status){
        $("#id_if_div_where_you_want_to_show_updated_data").html( data );
    });

    return false; 
  });
});

编辑

控制器方法如下所示

def method
  Do what you want to do
  @object = Model.some_queries
  render :template => "path_to_view_file like controller_name/method_name",:layout => false
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读