我使用 formtastic 为我的资源创建新表单和编辑表单。
使用 f.inputs 之类的东西,它会自动获取并显示我的所有字段。
我想知道是否有类似的东西可以让编写索引和显示视图更容易。我尝试使用带有“禁用”的formtastic来显示只读表单,但这不仅不受欢迎,而且对于我想要摘要而不是所有细节的单选按钮/复选框输入来说也很混乱。
我使用 formtastic 为我的资源创建新表单和编辑表单。
使用 f.inputs 之类的东西,它会自动获取并显示我的所有字段。
我想知道是否有类似的东西可以让编写索引和显示视图更容易。我尝试使用带有“禁用”的formtastic来显示只读表单,但这不仅不受欢迎,而且对于我想要摘要而不是所有细节的单选按钮/复选框输入来说也很混乱。
我是 Formtastic 的创建者/维护者。我也使用“禁用”黑客来快速获得“显示”视图。这并不理想,但它确实有效。这并没有具体回答您的问题,但是对于单选按钮,您始终可以为“显示”视图执行 :as => :string 。我实际上做了很多!
我在以前的工作中开始了Attrtastic项目,现在我从头开始重写它(同时进行了一些重构)。我希望在本月底之前完成我在之前版本中已经完成的所有工作(嵌套对象集合、按钮/链接空间、诸如“编辑”、“删除”、“新建”之类的内容)。
Viewtastic试图做到这一点。虽然我没有亲自使用过。
UberKit是我发现的另一个(虽然我也没有使用过它......希望在一个新项目中使用它)。
对于索引,我绝对推荐查看thoughtbot 的sortable_table。它使创建可点击的可排序表变得非常容易。与 will_paginate 结合使用。添加inherited_resources 以摆脱大部分控制器代码。你准备好了!
我使用 simple_form - https://github.com/plataformatec/simple_form。便于使用。
A quick way to display all accessible attributes:
Replace Album with your model
<%- model_class = Album -%>
<% model_class.accessible_attributes.select { |a| a != "" && !a.nil? }.each do |a| %>
<b><%= model_class.human_attribute_name(a) %></b> : <%= @album.send(a) %><br/>
<% end %>
If you want to filter out some attributes, define an array of attributes you would like to display in your controller, pass it to the view, loop through the array just like we did above (replace model_class.accessible_attributes
by @attributes_to_show
).
Please note that accessible_attributes
on an AR class is only available in Rails 3.2.2 and later.