查找Rails模型的允许属性

时间:2014-11-05 17:56:43

标签: ruby-on-rails ruby enumeration

我熟悉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 %>

1 个答案:

答案 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 %>