我正在尝试在一系列推文中显示用户个人资料照片。
我的模特
user.rb
has_many :tweets
tweet.rb
belongs_to :user, optional: true
我的观点
<% @tweets.reverse.each do |tweet| %>
<strong><%= link_to tweet.user.email, thisuser_path(tweet.user_id) %></strong>
<br>
<%= tweets_index_avatar(@image_tweet) %>
....
<% end %>
我的助手
def tweets_index_avatar(image_tweet)
if user.avatar.attached?
image_tag user.avatar.variant(resize: "100x100!"), class: "rounded-circle"
else
image_tag 'default_avatar.jpg', height: 100, width: 100, class: "rounded-circle"
end
end
有了这个(预期)...
undefined local variable or method `user'
我尝试了多种组合
def tweets_index_avatar(image_tweet)
if tweet.user.avatar.attached?
image_tag tweet.user.avatar.variant(resize: "100x100!"), class: "rounded-circle"
else
image_tag 'default_avatar.jpg', height: 100, width: 100, class: "rounded-circle"
end
end
错误
undefined local variable or method `tweet' for
要么...
def tweets_index_avatar(image_tweet)
if tweet.user_id.avatar.attached?
image_tag tweet.user_id.avatar.variant(resize: "100x100!"), class: "rounded-circle"
else
image_tag 'default_avatar.jpg', height: 100, width: 100, class: "rounded-circle"
end
end
结果相同
我的化身在迭代之外可以正常工作,但是如何在“每次”迭代中使它们工作呢?ty
似乎您将不正确的参数(未定义@image_tweet)传递给辅助方法。我假设您要按照以下步骤进行操作。
我的观点
<% @tweets.reverse.each do |tweet| %>
<strong><%= link_to tweet.user.email, thisuser_path(tweet.user_id) %></strong>
<br>
<%= tweets_index_avatar(tweet) %>
....
<% end %>
我的助手
def tweets_index_avatar(tweet)
if tweet.user.avatar.attached?
image_tag tweet.user.avatar.variant(resize: "100x100!"), class: "rounded-circle"
else
image_tag 'default_avatar.jpg', height: 100, width: 100, class: "rounded-circle"
end
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句