我熟悉attributes
方法,但我想做的只是返回模型控制器中允许的属性。
#users_controller.rb
def user_params
params.require(:user).permit(:name, :birthday, :email)
end
我想要做的是创建一个枚举器,它排除不必要的属性,如ids,时间戳,只包括上面示例方法中编写的内容:
# show.html.erb
<% @user.user_params.each do |key, value| %>
<p><b><%= key.titleize %>:</b> <%= value %></p>
<% end %>
答案 0 :(得分:1)
一种方法可能是:
<% @user.attributes.slice('email', 'name', 'birthday').each do |key, value| %>
<p><b><%= key.titleize %>:</b> <%= value %></p>
<% end %>
此外,您可以在 user.rb 中创建一个方法:
def user_params
self.attributes.slice('email', 'name', 'birthday')
end
现在你可以做到:
<% @user.user_params.each do |key, value| %>
<p><b><%= key.titleize %>:</b> <%= value %></p>
<% end %>