使用Rails 3.1.0,带有主动脚手架(来自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的任何地方都会发生。是否有一些替代设置需要我查找?
Do:
config.create.link.page = true
在helpers/view_helpers.rb和data_structures/action_link.rb中得出这一结论的相关位。
因为有3个互斥属性(页面、内联、弹出),将其中一个设置为false不会影响另一个(分析控制流),仅将其中一项设置为true会将其他两项设置为false。
"读取源,Luke"