2012-01-30 55 views
0

我正在开发一个项目与轨道3.1.3和kaminari 0.13.0。我有两个模型文章和评论。文章有很多评论。我的控制器是ArticlesController,基本上除了创建注释外都做了一切。这由CommentsController处理。在我看来,'文章#秀'我有一个表格来评论新的评论。我希望这个表单可以远程提交(:remote => true)。我有一份评论清单,正在与kaminari分页。当然,我想要刷新列表。然而,当评论被提交给'comments#create'时,分页链接在重新提交时变得不正确。我试图添加<%= paginate @comments, :params => { :controller => "articles", :action => 'show' } %>以使它们指向正确的url,但是这并没有解决我的问题。当列表被重新描绘,我收到:与Kaminari分页和远程窗体的导轨

ActionView::Template::Error (No route matches 
{:utf8=>"✓",:authenticity_token=>"5VJqDLifXX0O/ttq9rNY0POUbsN678I6Au2iL2Qcv7w=", 
:comment=>{"name"=>"4004053","content"=>"asdf"},:commit=>"Create Comment", 
:action=>"show",:controller=>"articles",:article_id=>"4f24fbb4f4b7b863a4000009", 
:page=>nil}): 

我可以通过添加额外的属性进行分页,并使其<%= paginate @comments, :custom_url => "/articles/#{@article._id}" %>解决这个问题。然后我可以更改kaminari的视图来将url设置为我的custom_url,如果它在那里的话。但我不太喜欢这个想法。

我错过了什么吗?有一个更好的方法吗?

预先感谢您!

回答

3

原来

<%= paginate @comments, :params => { :controller => "articles", :action => 'show' } %> 

几乎工作,但我需要添加:ID => @ article.id所以就成了

<%= paginate @comments, :params => { :controller => "articles", :action => 'show', :id => article.id } %> 

很愚蠢的错误,我现在看到。我不了解足够的路由。