Has_and_belongs_to_many


#1

Ciao a tutti, ho una tabella categories e una tabella links collegate
con una tabella join categories_links. Le due tabella sono collegate tra
loro dalle relazioni:

class Category < ActiveRecord::Base
has_and_belongs_to_many :links

class Link < ActiveRecord::Base
has_and_belongs_to_many :category

Nella pagina dove inserisco un nuovo link vorrei creare una checkbox per
ogni categoria. Io ho provato ad aggiungere

<% for cat in @links.category %>

<% end %>

Mi da questo errore undefined method `category’ for nil:NilClass

Volevo sapere come posso fare a ciclare sulle categorie attraverso la
relazione has_and_belongs_to_many???
Purtroppo la mia condizione di newbbie non mi permette di arrivarci da
solo :frowning:

Grazie per le risposte saluti

Taddei Fabrizio

  ___________________________________

L’email della prossima generazione? Puoi averla con la nuova Yahoo!
Mail: http://it.docs.yahoo.com/nowyoucan.html


#2

dovresti postare controller, model, etc.
per adesso il tuo problema è che non ti “arrivano” i @links al template

Fabrizio T. wrote:

<% for cat in @links.category %>

<% end %>

Mi da questo errore undefined method `category’ for nil:NilClass


#3

sbaglio o devi “pluralizzare” i nomi dei model?
has_and_belongs_to_many :categories

Il 07/05/07, Ivan L. removed_email_address@domain.invalid ha scritto:


everything has got to end sometime we were satellites drifting off into
space
vega 4 - burn and fade away


#4

tarini wrote:

sbaglio o devi “pluralizzare” i nomi dei model?
has_and_belongs_to_many :categories

Ho messo categories al posto di category…ma non funziona.

Nei model ho solo:

class Category < ActiveRecord::Base
has_and_belongs_to_many :links

class Link < ActiveRecord::Base
has_and_belongs_to_many :categories

Vi posto la parte di controller links che popola @links:

class Admin::LinksController < ApplicationController
ApplicationController

def index
list
render :action => ‘list’
end

verify :method => :post, :only => [ :destroy, :create, :update ],
:redirect_to => { :action => :list }

def list
@link_pages, @links = paginate :links, :per_page => 15
end

Nel controller categories:

class Admin::CategoriesController < ApplicationController
ApplicationController

def index
list
render :action => ‘list’
end

verify :method => :post, :only => [ :destroy, :create, :update ],
:redirect_to => { :action => :list }

def list
@category_pages, @categories = paginate :categories, :per_page => 10
end

E nella view insert dei link dovrei fare un ciclo sulle categorie e
creare una checkbox per ogni categoria…

Spero di avervi dato tutte le informazioni di cui avete bisogno e grazie
per l’aiuto…

Saluti

Fabrizio


#5

On 5/7/07, Fabrizio T. removed_email_address@domain.invalid wrote:

E nella view insert dei link dovrei fare un ciclo sulle categorie e
creare una checkbox per ogni categoria…

Per creare le checkbox per le categorie:

<% Categories.each do |category| %>

<% end %>

con habtm hai @link.categories per trovare tutte le categorie di un link
e @
category.links per trovare tutti i links di una categoria

Ciao,
Tommaso