2014-11-05 130 views
0

我熟悉attributes方法,但我想要做的只是返回在我的模型控制器中允許的屬性。查找Rails模型的允許屬性

#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

的一種方法是:

<% @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 %> 
+0

謝謝!另外值得注意的是,你會想'標題'鍵,否則你最終會返回下劃線爲多字屬性。在我的問題中查看更新的代碼。 – 2014-11-05 18:08:40

+0

您是否看到更新的答案? :P – Surya 2014-11-05 18:09:31

+0

是的。必須再等幾分鐘才能接受。謝謝! – 2014-11-05 18:10:13