2009-02-11 53 views
1

如何处理允许用户向父项添加子对象而无需导航到父项?ruby​​ on rails:在不访问父项的情况下向现有父项添加子项记录

例如添加期刊文章而不必导航到期刊并首先发布?家长也可能不存在。

我不希望数据输入过于繁琐,以至于使用户找到日记或创建日记,然后发现或创建问题似乎有点多。我宁愿只拥有一个带日记和发行字段的单一表格。如果不是因为用户对文章感兴趣而不是期刊或问题,这个逻辑就很简单。

你只是修改一个创建的孩子,以便它找到或创建父母?

回答

6

我假设你有一个杂志模型,有许多文章和属于日记的文章模型。首先,你应该制定路线的文章控制器,经过杂志,而不是通过杂志:

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将是零。

在ERB模板,只是你这下创建降:

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

然后用户可以选择一本刊物,但如果一个被传入,它会预先选定的正确的价值。

相关问题