我是 Ruby on Rails 的新手。我只是在现有数据库上构建 Web 应用程序。我使用 rails 为餐厅和位置表生成 2 个脚手架。之后,我为这两个表设置了关系:
class Restaurant < ActiveRecord::Base
attr_accessible :created, :cuisine_fk, :dish_keywords, :dish_names, :factual_id, :first_name, :last_name, :name, :status
has_many :locations
end
class Location < ActiveRecord::Base
attr_accessible :address1, :address2, :city, :created, :latitude, :longitude, :phone, :restaurant_fk, :state, :status, :url, :zip
belongs_to :restaurant
end
在为这些表设置此关系后,我没有使用“rake db:migrate”,因为我担心此操作会更改现有表。
当我运行这个命令行
<%= restaurant.location.address1%>
它显示错误:
undefined method `location'
" NoMethodError in Restaurants#index
Showing C:/Sites/Dishclips/app/views/restaurants/index.html.erb where line #52 raised:
undefined method `location' for #<Restaurant:0x5853bb8> "
之后我尝试为文件设置外键:
class Location < ActiveRecord::Base
attr_accessible :address1, :address2, :city, :created, :latitude, :longitude, :phone, :restaurant_fk, :state, :status, :url, :zip
belongs_to :restaurant, :class_name => "Restaurant", :foreign_key => 'restaurant_fk'
end
但它仍然不起作用。
在为表设置关系之后,有什么方法可以设置外键而不是使用“rails db:migrate”?我非常感谢你的帮助。