2

私は Rails の初心者なので、ここで入手できる入門ガイドに従っています: http://edgeguides.rubyonrails.org/getting_started.htmlとここ: http://guides.rubyonrails.org/getting_started.htmlしかし、私はできますポイント5.6 / 5.7が機能しません。

これは私のコントローラーです:

class PostsController < ApplicationController
    def new
    end

    def show
        @post = Post.find(params[:id])
    end

    def create
      @post = Post.new(post_params)

      @post.save
      redirect_to @post
    end

    private
    def post_params
        params.require(:post).permit(:title, :text)
    end

end

これが私のフォームです:

<%= form_for :post, url: posts_path do |f| %>
    <p>
        <%= f.label :title %><br>
        <%= f.text_field :title %>
    </p>

    <p>
        <%= f.label :text %> <br>
        <%= f.text_area :text %>
    </p>

    <p>
        <%= f.submit %>
    </p>
<% end %>

これはroutes.rbです

Blog::Application.routes.draw do
  get "welcome/index"

  root 'welcome#index'

  resource :posts

end

しかし、送信すると、次のエラーが発生します。

NoMethodError in PostsController#create undefined method post_url' for #<PostsController:0x007f733c415418>抽出ソースで行を強調表示しますredirect_to @post。私は何を間違っていますか?私はルビー1.9.3とレール4.0.0を持っています

4

3 に答える 3

14

あなたの中で私はあなたが持っているのroutes.rbを見ます

resource :posts

私は信じています:

resources :posts
于 2013-10-17T05:18:19.770 に答える