Я пытаюсь создать систему личных сообщений для своего веб-сайта, и в настоящее время я работаю над ответами на сообщения.Однако я столкнулся с проблемой ActiveRecord :: AssociationTypeMismatch.Это сообщение об ошибке:
ActiveRecord :: AssociationTypeMismatch в RepliesController # create
Ожидается сообщение (# 58297820), получена строка (# 1635350)
Я пыталсячтобы выяснить, в чем проблема на некоторое время, теперь безуспешно.
Ниже вы найдете мой код для моей миграции, модели, вида и контроллера.
Миграция
def self.up
create_table :replies do |t|
t.integer :message_id, :null => false
t.integer :sender_id, :null => false
t.text :message, :null => false
t.timestamps
end
end
Модель
class Reply < ActiveRecord::Base
belongs_to :message
validates_presence_of :message
cattr_reader :per_page
@@per_page = 10
end
Вид
<% form_for(@reply) do |f| %>
<table>
<tr>
<td><%= f.text_area :message %></td>
</tr>
<%= f.hidden_field :message_id, :value => @message.id %>
<tr>
<td><%= f.submit 'Reply', :id => 'replySubmit' %></td>
</tr>
</table>
<% end %>
Контроллер
def create
account = Account.getAccountById(session[:user])
message = Message.find(
params[:reply][:message_id],
:conditions => ["messages.account_id=? or messages.sender_id=?", account.id, account.id]
)
if message
@reply = Reply.new
@reply.message_id = message.id
@reply.sender_id = account.id
@reply.message = params[:reply][:message]
if @reply.save
flash[:message] = "Reply successfully submitted."
redirect_to(messages_path)
else
flash[:warning] = "Message cannot be blank."
redirect_to(messages_path)
end
else
redirect_to(messages_path)
end
rescue ActiveRecord::RecordNotFound
render :template => "error"
end
Буду признателенлюбая помощь предоставлена.Я буду пытаться выяснить, в чем проблема.
Спасибо.
Обновление: Stacktrace
RAILS_ROOT: C:/Users/redbush/Desktop/biomixr
Application Trace | Framework Trace | Full Trace
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record /associations/association_proxy.rb:259:in `raise_on_type_mismatch'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associations/belongs_to_association.rb:22:in `replace'
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/associations.rb:1287:in `message='
C:/Users/redbush/Desktop/biomixr/app/controllers/replies_controller.rb:14:in `create'
Запрос
Параметры:
{"commit"=>"Reply",
"reply"=>{"message"=>"sssss",
"message_id"=>"4"},
"authenticity_token"=>"SMVfiolNAVPmLLU0eOWzx2jPFbujMtpyqQcs6A2Mxr0="}
Показать отклик дампа сеанса
Заголовки:
{"Content-Type"=>"",
"Cache-Control"=>"no-cache"}