2017-09-26 42 views
0

私は初めからブログを再構築しており、新しい記事を作成するためのフォームに関する問題が発生しました。Rails form_withの結果はNoMethodErrorになる

<%= form_with scope: :article, url: articles_path, local: true do |form| %>の結果はundefined method `form_with'となります。

Railsは、次の提案を提供します。

<h1>New Blog Post</h1> 
<%= form_with scope: :article, url: articles_path, local: true do |form| %> 
    <p> 
    <%= form.label :title %><br> 
    <%= form.text_field :title %> 
    </p> 

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

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

articles_controller.rb

form_with使用して、新しい記事の undefined method `label' for nil:NilClass

フォーム:form_tagをしようとしたら Did you mean? form_tag

を、私は次のエラーを取得します

class ArticlesController < ApplicationController 
    def index 
     @articles = Article.all 
    end 

    def show 
     @article = Article.find(params[:id]) 
    end 

    def new 
     @article = Article.new 
    end 

    def create 
     @article = Article.new(article_params) 

     @article.save 
     redirect_to @article 
    end 

    private 
     def article_params 
      params.require(:article).permit(:title, :text) 
     end 
end 

私はform_tagform_withを変更すると、私は次のエラーを取得:レコードのundefined method `label' for nil:NilClass

を、私は

  1. ルビー2.3.4
  2. のRails 4.2.5
を使用しています
+1

Form_withはレール5(5.1?)で導入されました。レールに正しい構文を使用してform_forを使用してください。 – Syl

+0

アドバイスありがとうございます! – Michael

答えて

2

form_for @article do |form|form_for Documentationform_tagは、 ormタグ(HTMLタグ)で、必ずしもActiveRecordオブジェクトにアタッチされているわけではありません。

+0

ありがとう!それは魅力のように働いた! – Michael

関連する問題