我有一个包含很多属性的模型,并构建了一系列页面来收集所有相关数据。在最后一页,我想向用户展示所有收集到的数据。
我可以通过手动键入每个属性的所有标签和值来创建此页面,但我希望这种乏味和重复的任务已经有人解决了,所以只需 3-4 行代码。
在这个阶段,我只是制作原型(prototype),所以不需要看起来很好。
有人对如何在屏幕上快速打印模型的所有属性有任何建议吗?
我是这样想的:
如果@my_data_model是我要打印属性的实例变量,那么:
<%= show_attributes @my_data_model %>
将输出带有标签的属性值。
感谢期待。
最佳答案
我正在为我的一个项目这样做:
首先我定义了一个我不想要的列的数组,比如时间戳列:
<% @rejects = ["id", "created_at", "updated_at" %>
然后从对象中删除这些列;
<% @columns = Patient.column_names.reject { |c| @rejects.include?(c) } %>
然后我遍历 column_names 并打印出输入的信息:
<h2>Is the following information correct?</h2>
<div class="checks">
<h3>Patient details</h3>
<% @columns.each_with_index do |c, i| %>
<p id="p<%= i %>" class="check">
<span class="title"><%= c %>:</span>
<span class="value"><%= @patient[i] %></span>
<span class="valid">
<img src="../../images/icons/tick.png" alt="green tick">
</span>
</p>
<% end %>
</div>
希望这对您有所帮助!
关于ruby-on-rails - ruby rails : get collection of attributes for a model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665574/