I’m really having a hard time implementing foreign keys and I find it
odd that Rails makes so many things easy, yet foreign keys don’t seem to
be supported. Maybe I am missing something. Here’s the revelant set up
info:
Table Test
id
title
summary
test_type_id
Table Test_Type
id
type_name
class Admin::TestController < Admin::BaseController
scaffold :test
def new
@test = Test.new
@test_type = TestType.find(:all)
end
end
class Admin::TestTypeController < Admin::BaseController
scaffold :test_type
end
class Test < ActiveRecord::Base
has_many :questions
has_many :logged_tests
has_many :results
belongs_to :test_type
belongs_to :user
end
class TestType < ActiveRecord::Base
has_many :tests
end
views/admin/test/new.rhtml
<%= start_form_tag :action => “create” %>
Title
<%= text_field_tag("test_title", nil, :size => "40") %>
Summary
<%= text_area_tag("test_summary", nil, :size => "40x20") %>
<%= select :test, :test_type,
options_from_collection_for_select(@test_types, "id", "type_name") %>
<%= submit_tag(value = "Create New Test") %>
<%= end_form_tag() %>
Back
---------------------
error:
ActionView::TemplateError (undefined method `inject’ for nil:NilClass)
on line #19 of app/views/admin/test/new.rhtml:
16: <%= text_area_tag(“test_summary”, nil, :size => “40x20”) %>
17:
18:
19: <%= select :test, :test_type,
options_from_collection_for_select(@test_types, “id”, “type_name”) %>
20:
21:
22: <%= submit_tag(value = “Create New Test”) %>
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_view/helpers/form_options_helper.rb:141:in
options_from_collection_for_select' #{RAILS_ROOT}/app/views/admin/test/new.rhtml:19 /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_view/base.rb:268:in
send’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_view/base.rb:268:in
compile_and_render_template' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_view/base.rb:244:in
render_template’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_view/base.rb:205:in
render_file' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:655:in
render_file’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:595:in
render_with_no_layout' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/layout.rb:228:in
render_with_a_layout’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:684:in
render_with_layout' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:645:in
render_action’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/scaffolding.rb:153:in
render_scaffold' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/scaffolding.rb:117:in
new’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:853:in
send' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:853:in
perform_action_without_filters’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/filters.rb:332:in
perform_action_without_benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/benchmarking.rb:69:in
measure' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/rescue.rb:82:in
perform_action' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:369:in
send’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:369:in
process_without_session_management_support' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/session_management.rb:116:in
process’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/dispatcher.rb:38:in
dispatch' /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:141:in
process_request’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:53:in
process!' /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:52:in
each_cgi’
/usr/lib/ruby/1.8/fcgi.rb:597:in each' /usr/lib/ruby/1.8/fcgi.rb:597:in
each_cgi’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:52:in
process!' /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:22:in
process!’
dispatch.fcgi:33
Any help appreciated.