所以我将对象的属性映射到视图中的表,我想让代码更简洁一些,并消除多余的 HTML。
这是它的样子:
- @users.each do |user|
%tr
%td= user.username
%td= user.first_name
%td= user.last_name
%td= user.email
%td= user.country
%td= user.state
%td= user.password
...
我想知道是否有一种消除所有这些冗余%td= user.
调用的好方法。我正在观看Form Builders上的 Railscast 插曲,他有一个辅助方法,它使用以下元编程语法来消除重复:
%w[text_field text_area password_field collection_select].each do |method_name|
define_method(method_name) do |name, *args|
现在有什么办法可以使用类似于这种结构的东西吗?实际上,我在替换方法名称后尝试实现这个精确的语法结构,并且似乎 define_method 函数未定义(哦,具有讽刺意味!)。