rails显示页面未显示rails 4中的关联记录

时间:2014-08-19 00:50:12

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rspec

我有小组,他们有成员(链接)。

我的群组展示页面主要用于列出会员。

这在rails 3中运行良好

我升级到rails 4,其他一切正常但@members列表没有显示,我没有看到任何错误。这是一个常规的erb页面(我也是单独的,有一个页面,内容是通过ajax加载的,应该列出成员,这也是坏的,但我现在专注于erb页面。)

日志显示

Started GET "/groups/49" for 127.0.0.1 at 2014-08-18 20:34:25 -0400
Processing by GroupsController#show as HTML
  Parameters: {"id"=>"49"}
  Group Load (0.4ms)  SELECT `groups`.* FROM `groups` WHERE `groups`.`id` = 49 ORDER BY group_name
 LIMIT 1
   (0.5ms)  SELECT COUNT(*) FROM `links` WHERE ('group_id')
  CACHE (0.0ms)  SELECT COUNT(*) FROM `links` WHERE ('group_id')
  CACHE (0.0ms)  SELECT COUNT(*) FROM `links` WHERE ('group_id')
  Rendered groups/show.html.haml within layouts/application (5.5ms)

链接为:link_to 'Members', group

路线是:

resources :groups do
  resources :links # Enables group/:id/link/new
  collection do
    post 'order_links'
  end 
end 

组控制器具有以下显示:

def show
  @group = Group.find(params[:id])
  @members = Link.where(:group_id, params[:id]).order(:position)
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render xml: @group }
    format.json { render json: @members }    
  end
end   

,页面有:

  %ul#sortable
    - @members.each do |loop|
      = content_tag_for :li, loop do
        - construct_hyperlink(loop.url_address, loop.alt_text)
        = sanitize @address_url
        \- #{h @new_link_alt_text}              #{link_to 'details', link_path(loop), {"title" => loop.alt_text}}              #{link_to 'edit', edit_link_path(loop), {"title" => loop.alt_text}}

这有点难以阅读授予你,但请放心,它已经在rails 3中使用了多年这个应用程序:)

问题可能是从相关模型中获取信息?

1 个答案:

答案 0 :(得分:1)

您的where条款中有拼写错误。这样:

Link.where(:group_id, params[:id]).order(:position)

应该成为:

Link.where(group_id: params[:id]).order(:position)