我是新手RoR開發者。我陷入了一個問題。我正在嘗試爲可以創建主題的用戶創建應用程序,而其他人可以在主題下張貼他們的評論。主題由用戶創建,並在主頁面上列出。我幾乎完成了這些主題。但是,當我點擊他們看帖子,我得到無法找到主題沒有ID錯誤。RoR找不到沒有ID的主題
我想我的錯誤是主題有兩個索引id和user_id。 這裏是我的主題模式:
class Topic < ActiveRecord::Base
attr_accessible :content, :title
belongs_to :user
has_many :posts
validates :title, presence: true, length: { maximum: 140 }
validates :content, presence: true
validates :user_id, presence: true
default_scope order: 'topics.created_at DESC'
end
我的崗位模型
class Posts < ActiveRecord::Base
attr_accessible :content
belongs_to :topic
belongs_to :user
validates :user_id, presence: true
validates :content, presence: true
default_scope order: 'posts.created_at DESC'
end
這是我topics_controller.rb:
class TopicsController < ApplicationController
before_filter :signed_in_user, only: [:create, :destroy]
before_filter :correct_user, only: :destroy
def show
@topic = Topic.find(params[:id])
@posts = @topic.posts.paginate :page => params[:page], :per_page => 20
end
.
..vs
,這是我的config/routes.rb中
MyPedia::Application.routes.draw do
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :topics, only: [:show, :create, :destroy]
resources :posts
root to: 'static_pages#home'
match '/topicin', to: 'topics#show'
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
match '/help', to: 'static_pages#help'
match '/about', to: 'static_pages#about'
match '/contact', to: 'static_pages#contact'
我的t opics show.html.erb
<% title @topic.title %>
<div class ="center">
<h3><%= @topic.title %></h3>
<% if @posts? %>
<% for post in @posts do %>
<p><strong><%= post.content %>
<% end %>
<% end %>
</div>
我試圖找到解決這個問題的方法。 感謝幫助
可以共享URL您使用,並得到這個錯誤?它是一個現有的ID嗎?你在使用資源路線還是後來的匹配路線?一般順便說一句,有重疊的路線不是一個好主意。 – Achilles
http:// localhost:3000/topicin這是我得到的錯誤地址。 – ytsejam
是的,你重新使用該路線錯誤。/topicin沒有指定ID,所以應用程序無法顯示記錄,因此是例外。 – Achilles