我以Ruby開始,並且在我的視圖中顯示信息時遇到了一些問題。如何在我的視圖中顯示嵌套屬性的值?
這裏是我的代碼: ê 應用程序/模型/ user.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :encrypted_password, :meta_attributes
has_one :meta
accepts_nested_attributes_for :meta
end
*應用程序/控制器/ users_controllers.rb *
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
應用程序/視圖/用戶/index.html.rb
<% @users.each do |user| %>
<td><%= user.email %></td>
<td><%= user.meta.last_name %></td>
<tr>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
有你所料,它會返回一些錯誤:
undefined method `last_name' for nil:NilClass
你有什麼線索?
'meta'是我的'attr_accessible list' :)所有用戶都將擁有元,但有些領域應該是空的。是否有一個更簡潔的方法來檢查字段是否爲空<'%if user.meta%>' – Xavier 2013-03-06 13:34:14
@ x4vier您必須檢查每個字段,例如您的last_name錯誤,您可以用'user替換它。 meta.last_name if!user.meta.nil?'或類似的東西 – alestanis 2013-03-06 15:46:08
@ x4vier如果所有用戶都有一個非零元,你不應該有錯誤,你發佈 – alestanis 2013-03-06 15:47:11