0

我遇到了麻烦,因为我不明白为什么我的代码不起作用。我现在正在尝试显示单击链接“加入此组”以加入页面上的组的成员的姓名(show.html.erb-group)。

【型号】<p>

组:列⇒id,名称等

成员:列⇒id,名称等

GroupInMember:列⇒group_id,member_id

【控制器】</h1>

groups_controller.rb

def show
  @group = Group.find(params[:id])
  @member =Member.find(params[:id])
  respond_to do |format|
   format.html # show.html.erb
   format.json { render json: @group }
 end
end

def join
 if GroupInMember.where(:member_id => session[:login].id, :group_id =>params[:id]).exists?    
 then
   GroupInMember.where(:member_id => session[:login].id, :group_id =>
   params[:id]).each do |g|
     g.destroy
   end
 else
 GroupInMember.new({:member_id => session[:login].id, :group_id     
 =>params[:id].to_i}).save
 end
end

show.html.erb-组

<% @group.group_in_members.each do |m| %><p>
 <li><%= Member.find(m.member_id).name %></li><p>
<% end %><p>

<%= link_to 'Join this group', {:controller => 'groups', :action => 'show', :id =>
 @group.id }%>|<p>

【如何解决?】</h1>

我尝试了此代码,但未能通过点击在页面上显示名称。我在 Rails 控制台中检查了“GroupInMember”模型,但单击后没有添加其他信息。

我应该如何解决这个问题?

4

2 回答 2

0

哪一行代码调用了join()?怎么样:

<%= link_to 'Join this group', {:controller => 'groups', :action => 'join', :id =>
 @group.id }%>|<p>
于 2013-09-17T09:27:25.373 回答
0

在 groups#show 动作中,params[:id] 指的是什么?我认为,您应该使用不同的名称来接收 id os 组和成员的 id。

@group = Group.find(params[:id])
@member = Member.find(params[:id])

不会工作。你想做类似的事情

@group = Group.find(params[:group_id])
@member = @group.members.find(params[:id])
于 2013-09-17T09:34:54.880 回答