2

Rails 3 でブログを書こうとしているので、投稿があります。このような投稿の素敵なルートを作成したい: posts/year/month/day/post-title. だから私は to_param をオーバーライドしてタイトルmodel/post.rbに使用friendly_idします:

extend FriendlyId
friendly_id :title, :use => :slugged

def to_param
  "#{year}/#{month}/#{day}/#{title.parameterize}"
end

そして、これをに追加しましたroutes.rb

resources :posts do
  collection do
    match ":year/:month/:day/:id", :action => "show"
  end
  member do
    post 'comment'
    delete 'comment/:comment_id', :action => 'destroy_comment', :as => 'destroy_comment'
  end
end

このshow作品では:

<%= link_to image_tag("/images/edit_icon.png"),            
    { :controller => 'posts', :action => 'edit' }, :id => @post %>

しかし、indexその中で

routing error:
No route matches {:action=>"edit", :controller=>"posts"}.

私は Rails を初めて使用し、このエラーの原因を突き止めることができませんでした。誰かが私が間違っていることを理解するのを手伝ってくれますか?

4

0 に答える 0