Rails加载模态

时间:2015-06-10 14:41:36

标签: ruby ruby-on-rails-4 view-helpers

我有一些视图需要很多部分,这反过来需要几个引导模式才能正常工作。

然而,加载模态有点痛苦,因为如果我将它们加载到错误的标签中,它可以完全搞砸它们并复制它们。

我希望有一个好帮手load_modal,它实际上会保存一个需要加载的模态列表。然后,在我选择的HTML的一部分中,我可以选择迭代此列表以加载部分

我的问题

如何存储要调用的部分列表作为他们的论据?

我想到了以下内容,(故意使用非工作语法,因为我不知道该怎么做)

application_helper.rb

# Input should look like 
# => 'path_to_partial', {locals}
def load_modal(*args)
  unless (@modals ||= []).include?(args.first)
    @modals << args
  end
end

some_partial.html.erb

<% load_modals('project/deadline', project: @project) %>

application.html

<% if @modals
    @modals.each do |modal| %>
        <%= render(modal) %>
    <% end %>
<% end %>

注意:此代码的当前错误是

'"project/deadline"' is not an ActiveModel-compatible object. It must implement :to_partial_path.

1 个答案:

答案 0 :(得分:0)

这似乎有效

application_helper.rb

  def load_modal(*args)
    unless (@modals ||= []).include?(args.first)
      @modals.push(*args)
    end
  end

application.html.erb

<% if @modals
    @modals.each do |modal_with_args| %>
      <%= render(modal_with_args) %>
    <% end %>
<% end %>