Forum: Ruby on Rails TicketType Expected, Got String

Posted by Colton Pl (viperjuice)
on 2013-02-27 20:56
TicketType(#70316537311800) expected, got String(#10085740)

app/controllers/reasons_controller.rb:44:in `new'
app/controllers/reasons_controller.rb:44:in `create'

View:

<%= f.label :ticket_type %><br />
<%= f.select :ticket_type, TicketType.all.collect {|t| [ t.description,
t.description]}, {:include_blank => "Please select one"}, :method =>
'get'%>

Controller:

@reason = Reason.new(params[:reason])

respond_to do |format|
      if @reason.save
        format.html { redirect_to manage_tickets_path, notice: 'Reason
was successfully created.' }
etc

Model:

class Reason < ActiveRecord::Base
  validates :description, :ticket_type, :presence => true
        attr_accessible :description, :ticket_type

  belongs_to :ticket_type, :foreign_key => :ticket_type
end

class TicketType < ActiveRecord::Base
        attr_accessible :description

  has_many :reasons, :foreign_key => :ticket_type
end



I have read the "Kitchen" posting about the same error, the only problem
is i am using a description, not ID.
Changing the form just gives errors, any help would be greatly
appreciated.
Thanks!
Posted by Colin Law (Guest)
on 2013-02-27 23:14
(Received via mailing list)
On 27 February 2013 19:56, Colton Pl <lists@ruby-forum.com> wrote:
> 'get'%>
>
> Model:
>
> class Reason < ActiveRecord::Base
>   validates :description, :ticket_type, :presence => true
>         attr_accessible :description, :ticket_type
>
>   belongs_to :ticket_type, :foreign_key => :ticket_type

If you have the foreign key column called ticket_type and also
belongs_to ticket_type, then when you do @reason.ticket_type how is
rails going to know whether you want the value of the column or the
associated object?  Best to stick to the conventions and call the
column ticket_type_id.

By the way, when posting an error it is a good idea to tell us which
line is the line the error refers to (ie which is line 44 in this
case) in order to save us having to work it out ourselves.

Colin
Posted by Colton Pl (viperjuice)
on 2013-02-27 23:21
That worked perfectly. Thanks alot for the help, and ill keep the line 
#'s in mind for next time
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.