[英]Couldn't find Post with 'id'=
我正在嘗試鏈接到一個頁面,該頁面將顯示每個帖子的熱門回復,但是當我設置所有內容並單擊link_to按鈕時,我得到了錯誤消息:
ActiveRecord :: RecordNotFound(找不到帶有“ id” =的帖子):
我認為:
<% if @post.user == current_user && @post.responses.where(top: true).size >= 1 %>
<a href="#" class="btt"><%= link_to "finalize top", '/top' %>Finalize Top</a>
我將/ top路由設置為顯示頂部響應頁面:
get '/top' => 'responses#top'
我知道Rails不知道我要指的是哪個帖子,但是我不確定在視圖,路線或響應控制器中需要更改哪些內容。
我在響應控制器中也有此功能,我認為這會有所幫助,但沒有做到:
def top
@post = Post.find(params[:post_id])
end
任何幫助深表感謝! 這是我的第一次發布,對於Ruby on Rails和編程來說是全新的。
這是終端的完整錯誤:
Started GET "/top" for ::1 at 2017-01-21 21:17:03 -0500
Processing by ResponsesController#top as HTML
Post Load (0.1ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1 [["id", nil]]
Completed 404 Not Found in 2ms (ActiveRecord: 0.1ms)
ActiveRecord::RecordNotFound (Couldn't find Post with 'id'=):
app/controllers/responses_controller.rb:46:in `set_post'
我會嘗試:
def top
@post = Post.find(params[:id])
end
首先link_to
類似於<a>
在你看來是這樣,你應該把link_to
內<a>
就像是把一個<a>
另一個內部<a>
。 您認為:
<% if @post.user == current_user && @post.responses.where(top: true).size >= 1 %>
<%= link_to "finalize top", { controller: :responses, action: :top, id: @post.id },{ class: 'btn btn-default'} %>
在您的控制器中:
def top
@post = Post.find(params[:id])
end
在routes.rb中
get '/top' => 'responses#top'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.