使用Rails 3.1.0,使用Active Scaffold(来自git repo)。我的控制器的代码如下所示:
active_scaffold :template do |config|
config.create.link.inline = false
config.actions = [:list, :search, :create, :delete]
config.columns = [
:name,
:description
]
config.list.sorting = { :created_at => :desc }
end
理论上,这意味着活动脚手架列表顶部的“创建新”链接应该在没有数据远程调用的情况下呈现,但它仍然被渲染为:
<a href="/admin/templates/new" class="new" data-remote="true" id="as_admin__templates-new--link">Create New</a>
我们还使用以下内容覆盖_action_group.html.erb,但我已删除该文件以进行测试,但它没有任何效果。这是覆盖中的代码:
<% record ||= nil
start_level_0_tag ||= ''
end_level_0_tag ||= ''%>
<% action_links.traverse(controller, traverse_options) do |parent, link, options| -%>
<% if (options[:node] == :finished_traversing) -%>
<%= "</ul>#{(options[:level] == 0 ? "</div>#{end_level_0_tag}": '</li>')}".html_safe %>
<% elsif (options[:node] == :start_traversing) -%>
<% html_classes = []
html_classes << 'hover_click' if hover_via_click? %>
<% if options[:level] == 0 %>
<% html_classes << 'action_group' %>
<%= "#{start_level_0_tag}<div class=\"#{html_classes.join(' ')}\" #{"onclick=\"\"" if hover_via_click?}> #{content_tag(:div, as_(parent.name), :class => (parent.name.to_s).downcase)}<ul>".html_safe %>
<% else %>
<% html_classes << 'top' if options[:first_action] %>
<%= "<li #{"class=\"#{html_classes.join(' ')}\"" unless html_classes.empty?} #{"onclick=\"\"" if hover_via_click?}>#{content_tag(:div, as_(parent.name), :class => (parent.name.to_s).downcase)}<ul>".html_safe %>
<% end %>
<% else -%>
<% if options[:level] == 0 %>
<%= "#{start_level_0_tag}#{render_group_action_link(link, url_options, options, record)}#{end_level_0_tag}".html_safe %>
<% else %>
<%= content_tag('li', render_group_action_link(link, url_options, options, record), options[:first_action] ? {:class => 'top'}: {}) %>
<% end %>
<% end -%>
<% end -%>
在我尝试设置config.create.link.inline的任何地方都会发生这种情况。在我需要寻找的某个地方是否有一些重要的设置?
答案 0 :(得分:2)
执行:
config.create.link.page = true
在helpers/view_helpers.rb和data_structures/action_link.rb中得出此结论的相关位。
因为有3个互斥属性(页面,内联,弹出),将一个设置为false不会影响另一个(分析控制流),只将一个设置为true会将另外两个设置为false。
“阅读来源,卢克”