Reputation: 371
I am now trying to show the images, which a user already registered, on his or her 'mypage'. Then, I wrote some codes as below.But it doesn't work.Could you give me some advises?
☆members_controller
@member= Member.find(params[:id])
@member.groups.reverse.map do |group|
@join_groups_images = group.imageurl
☆(members)show.html.erb
<div class="join_groups_images">
<%= image_tag @join_groups_images, :width => '20px' ,:height => '25px' %>
</div>
☆(model)member.rb
class Member < ActiveRecord::Base
attr_accessible :admin, :mail, :memo, :name, :pass, :user, :pass_confirmation
has_many :group_in_members, :dependent => :destroy
has_many :groups, :through => :group_in_members
☆(model)group_in_member.rb
class GroupInMember < ActiveRecord::Base
attr_accessible :group_id, :member_id
belongs_to :group
belongs_to :member
end
☆schema.rb
create_table "groups", :force => true do |t|
t.string "name"
t.text "memo"
t.boolean "admin"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "imageurl"
end
Upvotes: 0
Views: 35
Reputation: 1095
You didn't provide whole code from action in members controller, but I assume, that you are using .map{|| } in wrong way. You need a variable with array or even method in Member
model.
class Member < ActiveRecord::Base
...
def images
groups.reverse.map(&:imageurl)
end
...
end
and then, put this in your view
<ul class="join_groups_images">
<% @member.images.each do |image| >
<li><%= image_tag image %></li>
<% end>
</div>
that should do the trick.
Upvotes: 1