Hey Fred,
Thanks for you additional guidance on my introduction of belongs_to,
etc.
[email protected] wrote:
Assuming Vendor belongs_to :expense then
f.collection_select :vendor_id, @vendors, :id, :name
would do the trick
Au contraire: My concept is that every Expense belongs to some
Vendor. However, every Vendor can have many different Expenses
(incurred, as it were, at various times).
Sorry I worded that one back to front
No problem: I make so many mistakes that I amazed I get anything to
work.
That gave me:
undefined method `merge’ for :nickname:Symbol (referencing the
collection_select line)
It’s getting confused because …
I coded a corrected (I hope) version in app\views\expenses
\new.html.erb:
<%= f.label :vendor %>
<%# New version of vendor selection -%>
<% @vendors = Vendor.find( :all, :order=>"nickname ASC") -%>
<%= f.collection_select(:vendor, @vendors, :id, :nickname) %>
<%# End of New version -%>
<%= link_to 'New
Vendor’, :controller=>‘vendors’, :action=>‘new’ %>
I got the following error msgs which I suspect are due to the fact
that I added one-to-many, etc after I already had a running version
that saved the vendor-name in the expense record.
ActiveRecord::AssociationTypeMismatch in ExpensesController#create
Vendor(#37938940) expected, got String(#21132310)
[snip]
K:/_Utilities/ruby186-26_rc2/ruby/lib/ruby/gems/1.8/gems/
activerecord-2.3.5/lib/active_record/base.rb:2438:in initialize' K:/_Projects/Ruby/_Rails_Apps/_EIMS/RTS/app/controllers/ expenses_controller.rb:44:in
new’
K:/_Projects/Ruby/_Rails_Apps/_EIMS/RTS/app/controllers/
expenses_controller.rb:44:in `create’
Request
Parameters:
{“commit”=>“Create”,
“expense”=>{“category”=>“junk”,
“account”=>“the account”,
“mode”=>“check”,
“tran_date(1i)”=>“2010”,
“tran_date(2i)”=>“7”,
“description”=>“7/13-1227 attempt”,
“amount”=>“123.45”,
“tran_date(3i)”=>“13”,
“vendor”=>“65”,
“user_id”=>“rlm”},
“authenticity_token”=>“d7GwyUWfO8eyfwkiEbquQ4SQZr+zf4UQNJ4h6LxVDmE=”}
Expense Controller, expenses_controller.rb, lines 43-44 are:
def create
@expense = K:_Projects\Ruby_Rails_Apps_EIMS\RTS\app\controllers
\Expense.new(params[:expense])
Can you suggest how this should be coded in light of the vendor-
expenses linkage?
Thanks again in advance for any guidance you have time to offer.
Best wishes,
Richard