繁体   English   中英

Ruby on Rails:将子记录添加到现有父项中,而无需访问父项

[英]ruby on rails : adding child records to an existing parent without visiting the parent

您将如何处理允许用户将子对象添加到父项而无需他们导航到父项的情况?

例如,添加期刊文章而不必导航到该期刊并先发布? 父级可能还不存在。

我不希望用户输入繁重的数据,因此让他们查找或创建日记,然后查找或创建问题似乎有点麻烦。 我宁愿只有一个包含日记和期刊字段的表格。 如果不是因为用户对文章而不是期刊或期刊感兴趣,那么逻辑就很简单。

您是否只为孩子修改创建内容,以便它找到或创建父母?

我假设您有一个包含许多文章的期刊模型和一个属于期刊的文章模型。 首先,您应该创建到日记帐而不是日记帐的文章控制器的路由:

ActionController::Routing::Routes.draw do |map|
  map.resources :journals, :has_many => :articles
  map.resources :articles
end

现在,您可以使用URL /articles/new/journals/1/articles/new进入Articles控制器的新操作。 然后在您的Articles控制器中的新操作中,执行以下操作:

@article = Article.new(:journal_id => params[:journal_id])

哪个将文章的journal_id设置为传递的任何参数。如果未传递任何参数,则journal_id将为nil。

在ERB模板中,只需执行以下操作即可创建下拉列表:

<%= f.collection_select :journal_id, Journal.all(:order => "name"), :id, :name, :include_blank => true %>

然后,用户可以选择日记帐,但是如果日记帐被传递,它将被预先选择为正确的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM