ruby-on-rails – ROR将params传递给模态

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – ROR将params传递给模态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试打开一个显示项目列表的模态.项目列表在视图中已作为变量提供.如何将此变量传递给模态?

下面是主视图的大致情况:

View.html.erb

<div>
  <%= @users.each do |user|%>
    <h1>user.name</h1>
    <h2>user.email</h2>
    <%= link_to remote: true,'data-toggle' => 'modal','data-target' => '#taskModal do %>           
      <i><%= user.tasks.count%></i>
    <% end %>
  <% end %>
</div>

<div class="modal" id="taskModal" aria-hidden="true">
...
<%= render partial: 'list_modal' %>

list_modal是具有模态结构的部分.

解决方法

与在视图中已经存在项目列表并且想要将其传递给模态相反,您可以做的一件事是使用按钮(或链接)打开模态以通过ajax调用控制器操作,然后让动作响应JS,您现在将使用相应的view.js文件来填充模式以及以编程方式呈现它(填充后).

例:

链接到开放模式:

<%= link_to "Open users list",users_open_list_modal_path,remote: true %>

用户打开列表模态控制器动作:

def open_list_modal
  @user_list = User.all
  respond_to do |format|
    format.js
  end
end

open_list_modal.js.erb:

#populate modal
$('#modal').html('#{ escape_javascript(<%= render partial: 'user_list',locals: {user_list: @user_list} )}');

#render modal
$('#modal').openModal();

然后在模态本身上,您现在可以访问user_list(NOT @user_list)列表.

Note: In this example,I made use of both erb,js,and material-modal. If you are using something different from these ( maybe slim,haml,coffee,bootstrap…),you will have to suite the example to your case.

希望这可以帮助.

猜你在找的Ruby相关文章