Ruby on rails 3 什么';将资源id插入另一个资源的参数是一个好方法吗?

Ruby on rails 3 什么';将资源id插入另一个资源的参数是一个好方法吗?,ruby-on-rails-3,Ruby On Rails 3,我对编程非常陌生,所以我很难解释这一点——请原谅 我的rails应用程序中有一个文档模型和一个注释模型。注释属于文档,文档有许多注释——注释表中的外键是document\u id 在我的文档显示页面上,我有一个注释表单,它使用:content属性作为文本区域字段 我想做的是将文档的id传递到note参数中,这样便笺将同时包含用户提交的内容alng和基于文档路径的:document_id 目前,我正在使用一个隐藏字段表单助手将:document_id添加到便笺的params散列中,并将整个内容发送

我对编程非常陌生,所以我很难解释这一点——请原谅

我的rails应用程序中有一个文档模型和一个注释模型。注释属于文档,文档有许多注释——注释表中的外键是document\u id

在我的文档显示页面上,我有一个注释表单,它使用:content属性作为文本区域字段

我想做的是将文档的id传递到note参数中,这样便笺将同时包含用户提交的内容alng和基于文档路径的:document_id

目前,我正在使用一个隐藏字段表单助手将:document_id添加到便笺的params散列中,并将整个内容发送到NotesController,但我希望有一种更干净/可能更简单的方法


如果这有道理,有人能提出更好的方法吗?谢谢。

在您的路线中有类似

resources :documents do
  resources :notes
end
然后,您应该通过此路线添加注释

/文件/5/说明/新

那么在你的记事本中,控制器

def create
  @document = Document.find(params[:document_id])
  @note = @document.notes.build(params[:note])
  if @note.save
    # Blah
  else
    # Blah
  end
end

(这没有经过任何测试-但它让您知道如何在没有隐藏字段的情况下以RESTFUL样式进行此操作)

即使Notes表单位于document show页面上,此操作是否有效?我尝试过这样的嵌套路线,但无法打开文档显示页面。是的。因为文档显示页面仍将具有ID。通过/document/3访问文档,新便笺的表单路径必须看起来像NEW_document_note_path(@document)do | f |%>这确实有效,但我仍然对此感到不安。首先,这似乎创建了比预期更厚的控制器。毕竟,它只是document_id的一个params值,在控制器中经过如此多的过程只是为了传递该值,这似乎不是非常“Rails”(也称为优雅)。此外,我还简化了我的问题,以便更好地处理它。实际上,我也在尝试传递一个用户id(因为笔记和文档一样属于用户)。隐藏字段不好吗?使用嵌套管线方法是常见的替代方法吗?