我正在使用 rails 3.1.3 和 kaminari 0.13.0 开发一个项目。我有两个模型文章和评论。文章有很多评论。我的控制器是 ArticlesController,除了创建评论之外,它基本上可以做所有事情。这由 CommentsController 处理。在我对“articles#show”的看法中,我有一个表格来创建新评论。我希望远程提交此表单(:remote => true)。我在它下面有一个评论列表,它是用 kaminari 分页的。自然,我希望刷新列表。但是,当评论提交到“comments#create”时,重新呈现时分页链接会变得不正确。我尝试添加<%= paginate @comments, :params => { :controller => "articles", :action => 'show' } %>
以使它们指向正确的网址,但这并没有解决我的问题。重新呈现列表时,我收到:
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 中添加额外的属性来解决这个问题<%= paginate @comments, :custom_url => "/articles/#{@article._id}" %>
。然后我可以更改 kaminari 的视图以将 url 设置为我的 custom_url(如果它存在)。但是我不太喜欢这个主意。
我错过了什么吗?有一个更好的方法吗?
先感谢您!