Relationships In Partials


#1

I have two object classes:

class Feature < ActiveRecord::Base
belongs_to :featureable, :polymorphic => true
belongs_to :feature_type
end

class FeatureType < ActiveRecord::Base
has_many :features
end

I then have a partials which I’m using to iterate out a collection:

part of the action from the controller

def show_template
@product_template = ProductTemplate.find(params[:id])
@features = @product_template.features
end

from the view

<%= render :partial => “feature”, :collection => @features, :locals =>
removeButton => true } %>

#the partial
<%= @features.feature_type.name %>, id= <%= feature.id %>

<% if addBut %>
<%= button_to “Add”, :action => “add_feature_to_product”, :feature
=> feature, :product => @product_template %>
<% end %>

<% if remBut %>
<%= button_to “Remove”, :action => “remove_feature_from_product”,
:id => feature %>
<% end %>

When I run all this i get the following error:
undefined method `feature_type’ for Feature:Class

I’ve tried the following in the console and it works fine there:

name = features.first.feature_type.name
=> “Graphic Design”

Does anyone know why it won’t access the feature’s feature_type object
inside the partial?


#2

Shouldn’t your partial use this code:

<%= feature.feature_type.name %>

instead of

<%= @features.feature_type.name %>

@features (if it’s even available in the partial, don’t think it is
but i’m not sure without testing it) is an array.
@features.feature_type is wrong. When you are testing it in the
console, you are referencing features.first, which is fine.

On Feb 4, 1:36 pm, Pieter M. removed_email_address@domain.invalid