0
在我的show view中,我有一些不需要用戶填寫的屬性。在我的節目我觀點可以很容易地創建一個條件,像這樣:只顯示Rails中存在的屬性
<% if @user.occupation.present? %>
<p><%= @user.occupation %></p>
<% end %>
但是,如果我有3個或更多這些可選屬性,從而爲他們每個人多條件語句可能會變得非常乏味。我認爲做這樣的事情,但事實證明,該方法是attribute
私營:
<% @user.attributes.map do |attribute, name| %>
<% if @user.attributes.present? %>
<p><b><%= name %>:</b> <%= @user.attribute %></p>
<% end %>
<% end %>
爲了安全起見,我沒有必要試圖從被私人改變屬性的方法,但越是這樣只是在尋找一種方式列出已經排滿在我的模型的屬性。
對於你的第一個解決方案,我得到了錯誤'錯誤的參數數目(0 1)' – 2014-11-05 16:47:13
這是'@ user.send(屬性)',而不是'@ user.send(:屬性)'。我在兩種情況下都修復了代碼。 – 2014-11-05 16:48:00
我現在發現的唯一的事情就是它只能識別屬性的值而不是名稱。因此,它讀取「John Doe:John Doe」,它應該在其中讀取「name:John Doe」 – 2014-11-05 16:52:10