【发布时间】:2015-05-16 14:05:12
【问题描述】:
我在用户之间创建消息。 从here 获取信息。
然后我去找新消息,我有一个错误。
NoMethodError in MessagesController#new
undefined method `relation_delegate_class' for "Message":String
def new
@message = current_user.sent_messages.new
end
我该如何解决? 谢谢。
消息模型:
class Message < ActiveRecord::Base
belongs_to :sender, :class_name=>'User', foreign_key: 'sender_id'
belongs_to :recipient, :class_name=>'User', foreign_key: 'receiver_id'
end
用户模型:
class User < ActiveRecord::Base
has_many :sent_messages, class: 'Message', foreign_key: 'sender_id'
has_many :messages, class: 'Message', foreign_key: 'receiver_id'
end
消息控制器:
class MessagesController < ApplicationController
def new
@message = current_user.sent_messages.new
end
def create
@message = current_user.messages.new message_params
@message.receiver_id = @recipient.id
@message.save
end
private
def message_params
params.require(:message).permit(:text, :receiver_id, :sender_id)
end
def set_recipient
@recipient = User.find(params[:id])
end
end
【问题讨论】:
标签: ruby-on-rails ruby