1

私は Ruby on Rails v.4.0.0 ガイドに取り組んでおり、最後のコードを確認しました。しかし、私は 1 つのソースから発生すると思われる 3 つの問題を抱えています。私の SHOW メソッドは何らかの理由で機能していないようです。「表示」ビューがありますが、「id=show の投稿が見つかりませんでした」というエラーが表示されます。そして、PostsController の 35 行目が間違っていると教えてくれます。私はしばらく探しましたが、同様の十分な問題を抱えている人を見つけることができないようです. これがコントローラーとビューです。

コントローラ:

    1 class PostsController < ApplicationController
    2
    3   http_basic_authenticate_with name: "dhh", password: "secret",
    4 except: [:index, :show]
    5 
    6   def new
    7     @post = Post.new
    8   end
    9 
    10   def create
    11     @post = Post.new(params[:post])
    12 
    13     if @post.save
    14       redirect_to @post
    15     else
    16       render 'new'
    17     end
    18   end
    19                                                                    
    20   def edit
    21     @post = Post.find(params[:id])
    22   end
    23 
    24   def update
    25     @post = Post.find(params[:id])
    26 
    27     if @post.update(params[:post].permit(:title, :text))
    28       redirect_to @post
    29     else
    30       render 'edit'
    31     end
    32   end
    33 
    34   def show
    35     @post = Post.find(params[:id])
    36   end
    37 
    38   def index
    39     @post = Post.all
    40   end
    41 
    42   def destroy
    43     @post = Post.find(params[:id])
    44     @post.destroy
    45 
    46     redirect_to posts_path
    47   end
    48 
    49   private
    50     def post_params
    51       params.require(:post).permit(:title, :text)
    52     end
    53 end

意見:

    1 <%= @post.each do |post| %>
    2 <p>
    3   <strong> Title: </strong> 
    4   <%= @post.title %>
    5 </p>
    6 
    7 <p> 
    8   <strong> Text: </strong>
    9   <%= @post.text %>
    10 </p>
    11 
    12 <%end%>
    13 
    14 <h2> Comments </h2>
    15 <%= render @post.comments %>
    16 
    17 <h2>Add a comment:</h2>
    18 <%= render "comments/form" %>
    19 
    20 <%= link_to 'Back to Posts', posts_path %>
    21 | <%= link_to 'Edit Post', edit_post_path(@post) %>

完全なエラーは次のとおりです。

ActiveRecord::PostsController#show の RecordNotFound ID=show の投稿が見つかりませんでした

注:私は失読症なので、おそらく単なるスペルミスです...

4

3 に答える 3

5

params[:id]"show"実際の ID の代わりに等しいです。/posts/showおそらく、代わりに、/posts/1またはIDが何であれ、間違ったURLにアクセスしようとしています。

于 2013-08-29T14:34:11.073 に答える
2

コメントできないので、これが今のところの回答ですが、あなたが探している投稿の ID があなたがアクセスしようとしている URL に含まれていることを確認できますか? ID が「show」の投稿を探している場合はyourUrl/posts/showyourUrl/posts/1

于 2013-08-29T14:34:39.433 に答える
0

PostController を routes.rb に配置しましたか?

リソース :投稿

于 2013-08-29T16:16:13.687 に答える