2012-01-30 5 views
0

私はレール3.1.3とkaminari 0.13.0でプロジェクトを開発しています。私は2つのモデルの記事とコメントを持っています。記事には多くのコメントがあります。私のコントローラは、基本的にコメント作成以外のすべてを行うArticleControllerです。これはCommentsControllerによって処理されます。 「articles#show」の私の見解では、私は新しいコメントを作成するフォームを持っています。私はこのフォームを遠隔から提出したい(:remote => true)。私はカミナリと改ページされたコメントのリストを持っています。当然ながら、私はリストをリフレッシュしたい。しかし、コメントが 'comments#create'に提出されると、再レンダリング時に改ページリンクが正しくなくなります。私は<%= paginate @comments, :params => { :controller => "articles", :action => 'show' } %>を追加して、それらが正しいURLを指し示すようにしようとしましたが、これは私の問題を解決しませんでした。リストが再レンダリングされたとき、私は受け取る:カミナリページングとリモートフォームのレール

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の意見を変更して、そこにあれば私のcustom_urlにURLを設定することができます。しかし、私は非常にアイデアが好きではありません。

何か不足していますか?これを行うより良い方法はありますか?

ありがとうございます!

答えて

3

それはしかし、私は追加する必要が、

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

がほとんど働いていたことが判明した:それは

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

かなり愚かな過ちになったのid => @ article.idので、私は今参照してください。私は十分なルーティングを理解していませんでした。

関連する問題