[Rails] Re: Re: Re: Modelling Foreign Keys
d6veteran
d6veteran at gmail.com
Sun Apr 2 04:32:51 GMT 2006
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
<html>
<body>
<%= start_form_tag :action => "create" %>
<p>
<label for="test_title">Title</label><br />
<%= text_field_tag("test_title", nil, :size => "40") %></p>
<p>
<label for="test_summary">Summary</label><br />
<%= text_area_tag("test_summary", nil, :size => "40x20") %>
</p>
<p>
<%= select :test, :test_type,
options_from_collection_for_select(@test_types, "id", "type_name") %>
</p>
<p>
<%= submit_tag(value = "Create New Test") %>
</p>
<%= end_form_tag() %>
<a href="/admin/test/list">Back</a>
</body>
</html>
---------------------
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: </p>
18: <p>
19: <%= select :test, :test_type,
options_from_collection_for_select(@test_types, "id", "type_name") %>
20: </p>
21: <p>
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.
--
Posted via http://www.ruby-forum.com/.
More information about the Rails
mailing list