创建一个显示属于关联的所有记录的视图

时间:2012-04-12 07:18:21

标签: ruby-on-rails

我正在尝试创建一个视图,显示属于某个关联的所有记录,但不确定如何进行此操作。

我在view / members / showmembers.html.erb中创建了一个erb文件,在members_controller.rb中添加了'showmembers'方法,但当我转到http://localhost:3000/members/showmembers时,它说'找不到id = showmembers'的成员,它指向控制器中的show方法*'app / controllers / members_controller.rb:29:在'show'*。

  def showmembers    
    @organization = Organization.find(1)
    @shmembers = @organization.members.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @members }
    end
  end

showmembers.html.erb

    <% @shmembers.each do |shmember| %>
      <tr>
        <td><%= shmember.id %></td>
        <td><%= shmember.first_name %></td>
      </tr>
    <% end %>

感谢。

2 个答案:

答案 0 :(得分:2)

错误表明Rails不知道用于处理此请求的操作:http://localhost:3000/members/showmembers

由于这个请求是“GET”,Rails选择了“show”动作。

所以解决方案就是编辑你的config / routes.rb,并添加这条路线:

resources :members do 
  collection do
    get :showmembers  # add this line 
  end 
end 

答案 1 :(得分:0)

请将此信息粘贴到路径文件中,否则会映射显示导致此错误的操作,请先定义路径\

     resources :members do 
      collection do
         get :showmembers  
      end 
     end 

然后在控制器中

        hmembers = @organization.members

不需要这个成员= @ organization.members.all

如果你很好地定义协会......