Rails: Как вы создаете новый вложенный ресурс? - PullRequest
0 голосов
/ 17 июля 2011

В моем приложении пользователи имеют сообщения, а сообщения имеют сообщения.Сообщение принадлежит как Пользователю (как автору), так и Разговору.

Я хочу создать новое Сообщение.Это код, который я сейчас использую в MessagesController.

def new
  @user = current_user #currently logged in user
  @conversation = Conversation.find(params[:id])
  @message = @conversation.messages.build
end

def create
  @conversation = Conversation.find(params[:conversation_id])
  @message = @conversation.messages.build(params[:message])
  if @message.save
    redirect_to username_conversation(current_user, @message.conversation)
  else
    redirect_to root_url
  end
end

params [: message] содержит содержимое сообщения ("content" => "I'm Spartacus").

Это не работает (возможно, потому что я не указываю пользователя / автора при создании нового сообщения?).Как мне заставить эту работу работать в Rails?

Спасибо.

1 Ответ

3 голосов
/ 17 июля 2011

Вам необходимо установить пользователя вручную. Только одно свойство может быть установлено с помощью коротких методов, предоставляемых Rails.

def new
  @user = current_user #currently logged in user
  @conversation = Conversation.find(params[:id])
  @message = @conversation.messages.build
  @message.user = user
end

def create
  @conversation = Conversation.find(params[:conversation_id])
  @message = @conversation.messages.build(params[:message])
  @message.user = current_user
  if @message.save
    redirect_to username_conversation(current_user, @message.conversation)
  else
    redirect_to root_url
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...