我怎样才能纠正ActiveRecord :: Associations :: CollectionProxy

时间:2014-03-12 16:48:44

标签: ruby-on-rails ruby-on-rails-4 activeadmin foreign-key-relationship has-many

我正在创建一个类别选择下拉列表,以便为事件添加类别。

我可以添加它们并在编辑区域的表单中显示,我可以看到后端添加的类别。

当我尝试在视图中显示它们时,它在布局中给了我这个奇怪的错误:

<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Category:0x00000102542f10>

在我的设置中,我有这个:

视图/活动/ index.html.erb

<%= 
              event.categories.each do |events|
                category.name
              end
              %>

模型/ category.rb

class Category < ActiveRecord::Base

    belongs_to :event
    belongs_to :profile
    belongs_to :classified
    belongs_to :page

    extend FriendlyId
    friendly_id :name, use: :slugged

end

管理员/ category.rb

ActiveAdmin.register Category do

    controller do
       def permitted_params
          params.permit category: [:name, :description]
       end
       def find_resource
            scoped_collection.friendly.find(params[:id])
        end
    end

    form do |f|
      f.inputs "Name" do
        f.input :name
      end
      f.inputs "Description" do
        f.input :description, :as => :ckeditor, :label => false, :input_html => {  :ckeditor => { :toolbar => 'Full', :height => 400 } }
      end
      f.actions
    end

end

在我的类别表中,有一个event_id列,因此可以找到相关的事件,它链接到事件表和类别表。

对此的任何见解都会很棒

由于

1 个答案:

答案 0 :(得分:0)

更新views/events/index.html.erb,如下所示:

<% if event.categories.count > 0 %> 
      <% event.categories.each do |category| %> ## Use <% %> to evaluate ruby code
        <%= category.name %>               ## Use <%= %> To evaluate and show the results
      <% end %>
<% end %>         

在您的情况下,<%= %>将返回event.categories值,这是您在呈现的页面上看到的<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Category的实例。

<强>更新

OP也有外国关注的问题。在事件,个人资料,分类和页面类别表中添加foreign_keys。