我正在开发ror应用程序,该应用程序可以与遗留数据库一起工作,并使用activescaffold插件实现奇特的crud接口。
但是,我的遗留数据库的一个表具有复合主键。我尝试使用组合键插件来处理它,但它似乎与activescaffold有冲突:我得到以下错误:
ActionView::TemplateError (Could not find column contact,type) on line #3 of ven
dor/plugins/active_scaffold/frontends/default/views/_form.rhtml:
1: <ol class="form" <%= 'style="display: none;"' if columns.collapsed -%>>
2: <% columns.each :for => @record do |column| -%>
3: <% if is_subsection? column -%>
4: <li class="sub-section">
5: <h5><%= column.label %> (<%= link_to_visibility_toggle(:default_visible =
> !column.collapsed) -%>)</h5>
6: <%= render :partial => 'form', :locals => { :columns => column } %>
vendor/plugins/active_scaffold/lib/data_structures/sorting.rb:16:in `add'
在型号代码中,smth类似:
set_primary_keys :contact, :type
我非常感谢任何关于如何使用activescaffold获得组合键功能的想法。
最佳答案
我认为最好的办法是检查ActiveScaffold Google Group,因为它是由activescaffold的核心开发人员监视的,他们最终能够解决您的问题,并解释为什么带有插件的组合键不能与activescaffold一起使用。
祝你好运,如果你真的从google组得到了结果,一定要发表一篇后续文章(我之前已经发表过,并且很快收到了反馈)。
我发现的一个快速结果是this。
我所做的是创建一个不继承自
activerecord然后让“id”显示主键。在我看来
主键是从其他数据计算出来的,因此可能会改变
所以我不得不在几个地方重写activescaffold
允许在更新后更改主键。但是,总而言之
它很有效,而且相当简单。从一个空类开始
只需解决那些无法理解的信息。在你的情况下你
甚至可以在
替换id和id=方法,并筛选[]和[]=方法。
那可能对你有好处。