首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails:如何创建新的嵌套资源?

Rails:如何创建新的嵌套资源?
EN

Stack Overflow用户
提问于 2011-07-17 23:56:48
回答 1查看 155关注 0票数 0

在我的应用程序中,用户有对话,对话有消息。消息既属于用户(作为作者),也属于会话。

我想创建一条新消息。这是我现在在MessagesController中使用的代码。

代码语言:javascript
运行
复制
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

参数: message包含消息内容(" content“=> "I'm Spartacus")。

这不起作用(可能是因为我在创建新消息时没有指定用户/作者?)。我如何让它在Rails中工作?

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2011-07-18 00:00:15

您需要手动设置用户。使用Rails提供的简短方法只能设置一个属性。

代码语言:javascript
运行
复制
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
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6725024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档