如何在rails4 link_to中打开弹出框

时间:2015-06-02 12:30:23

标签: javascript ruby-on-rails ruby-on-rails-4 popupwindow

嗨我想打开我在视图中给出的弹出框

<%=link_to 'show',edit_interview_round_path(round), :remote => true%>
<div id="popup">
</div>

并将其写入我的控制器

def edit
  @interview_round = InterviewRound.where(id: params[:id]).first
  respond_to do |format|
    format.js
  end
end

我正在使用edit.js.erb

$("#popup").html('<%= escape_javascript(render 'interview_rounds/form') %>');
在interview_rounds / edit视图中的

写了这个

<%= render 'form' %>

在interview_rounds / _form视图中写过这个

<%= form_for @interview_round do |f| %>

    <div class='modal'>
      <%= f.text_field :name, :class => 'form-control' %>
      <label for='name'>Name</label>
    </div>


    <div class='input-field col s12' >
      <%= f.text_field :question_1, :class => 'form-control' %>
      <label for='name'>Name</label>
    </div>

    <div class='col s12 center-align'>
      <%= button_tag(:class => "btn waves-effect waves-light btn-large custom_btn_gray") do %>
          Submit <i class="mdi-content-send right"></i>
      <% end %>
    </div>

<% end %>

所以现在当我点击show它没有打开弹出窗口时它会在同一页面上显示编辑视图我想在弹出框中显示它,请指导我如何做到这一点。提前谢谢!

1 个答案:

答案 0 :(得分:0)

尝试格式化部分渲染代码:

$("#popup").html("<%= j render( :partial => 'interview_rounds/form' ) %>");

看起来你有嵌套的单引号,这可能就是问题所在。 您的代码当前设置为在具有弹出窗口ID的div中的同一页面上呈现部分代码。

如果您想在新窗口中渲染它,请尝试以下方法:

var wind = window.open("", "popupWindow", "width=600,height=600");

wind.document.write("<%= j render( :partial => 'interview_rounds/form' ) %>");

如果表单在#popup div中正确呈现并且你需要一个模态或叠加效果,你只需要将弹出div设置为一个模态,你就可以了。