ruby on rails - Belongs_to only recognized by console, not server -


i've got weird problem project. i've got 2 models, 1 link , other category. i've got index view links should listed, corresponding category names. when running server , trying use

<%= link.category.name %> 

i error page following:

undefined method `name' nil:nilclass 

but when open console , write:

link = link.find(1) #there 1 link link.category.name  

it returns correct category name.

here models , schema.rb:

class link < activerecord::base   attr_accessible :category_id, :description, :title, :url, :visible    belongs_to :category    scope :visible, lambda { where(visible: true) } end 

.

class category < activerecord::base   attr_accessible :name    has_many :links  end 

.

activerecord::schema.define(:version => 20130420070717)    create_table "categories", :force => true |t|     t.string   "name"     t.datetime "created_at", :null => false     t.datetime "updated_at", :null => false   end    add_index "categories", ["id"], :name => "index_categories_on_id"    create_table "links", :force => true |t|     t.string   "title"     t.text     "description"     t.string   "url"     t.integer  "category_id"     t.boolean  "visible"     t.datetime "created_at",  :null => false     t.datetime "updated_at",  :null => false   end    add_index "links", ["category_id"], :name => "index_links_on_category_id"   add_index "links", ["id"], :name => "index_links_on_id" end 

how can happen? thank help!

maybe can others facing same issue.

the category_id assigned link form queries existing categories db.

<%= f.select(:category_id, @categories.collect { |c| c.name }) %> 

the category wanted assign has id = 1. after selecting category dropdown menu, link.category_id 0, should have been 1.

update:

i fixed wrong index by:

<%= f.collection_select :category_id, @categories, :id, :name, :prompt => "select category" %> 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -