当前位置:  开发笔记 > 编程语言 > 正文

ruby on rails:将子记录添加到现有父级而不访问父级

如何解决《rubyonrails:将子记录添加到现有父级而不访问父级》经验,为你挑选了1个好方法。

您将如何处理允许用户将子对象添加到父级而不需要他们导航到父级?

例如,添加期刊文章而不必导航到期刊并首先发布?父母也可能不存在.

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

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



1> pjb3..:

我假设您有一个期刊模型,其中包含许多文章和属于期刊的文章模型.首先,您应该创建通过期刊而不是通过期刊的文章控制器的路线:

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

现在,您可以使用URL /articles/new或来访问文章控制器的新操作/journals/1/articles/new.然后在文章控制器中的新操作中,执行以下操作:

@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 %>

然后用户可以选择日记,但如果传入日记,则会预先选择正确的值.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有