2016-10-27 11 views
0

なぜ私は理解できないのですか?しかし、私はまだruby on railチュートリアルに従うときに問題があります。あなたが別のページ間を移動するには上のリンクを置くとき、それは...link_to expecting keyword_end rails

だこれが私の見解です:

<h1>New Article</h1> 
<%= form_for @article, url: articles_path do |f| %> <!<%= form_for :article, url: articles_path do |f| %> > 

    <% if @article.errors.any? %> 
    <div id="error_explanation"> 
     <h2> 
     <%= pluralize(@article.errors.count, "error") %> prohibited 
     this article from being saved: 
     </h2> 
     <ul> 
     <% @article.errors.full_messages.each do |msg| %> 
      <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <p> 
    <%= f.label :title %><br> 
    <%= f.text_field :title %> 
    </p> 

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

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

<%= link_to 'Back', articles_path %> 

と、これは私のコントローラである

class ArticlesController < ApplicationController 
    def new 
    end 

    def create 
    @article = Article.new(article_params) 

    if @article.save 
     redirect_to @article 
    else 
     render 'new' #on utilise render car cela permet de recharger la requête d'article 
        #qui vient d'échouer contrairement à redirect_to qui lancerais une nouvelle requete 
    end 
    end 

    def index 
    @articles = Article.all 
    end 

    def edit 
    end 

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

    def update 
    end 

    def destroy 
    end 
end 

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

あなたには、いくつかのが必要な場合はオーバー教えてください。

だから、任意のヒントを持っている場合、おかげでたくさん

答えて

1

そのないendキーワードを期待しているlink。実際のエラーはフォームにendタグがないためです。 あなたの迅速な回答を

<h1>New Article</h1> 
<%= form_for @article, url: articles_path do |f| %> <!<%= form_for :article, url: articles_path do |f| %> > 

    <% if @article.errors.any? %> 
    <div id="error_explanation"> 
     <h2> 
     <%= pluralize(@article.errors.count, "error") %> prohibited 
     this article from being saved: 
     </h2> 
     <% @article.errors.full_messages.each do |msg| %> 
      <ul> 
       <li><%= msg %></li> 
      </ul> 
     <% end %> 
    </div> 
    <% end %> 

    <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%> 
<%= link_to 'Back', articles_path %> 
0

おかげで以下のようにあなたを更新し、私はあなたがする私に言った何をしたしてください。実際、私はフォームの最後を逃した。新しいコードは

<h1>New Article</h1> 
<%= form_for @article url: articles_path do |f| %> 

    <% if @article.errors.any? %> 
    <div id="error_explanation"> 
     <h2> 
     <%= pluralize(@article.errors.count, "error") %> prohibited 
     this article from being saved: 
     </h2> 
     <ul> 
     <% @article.errors.full_messages.each do |msg| %> 
      <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <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%> 

<%= link_to 'Back', articles_path %> 

をすることができ 「の形で最初の引数はnilを含んでいたり空にすることはできません」

エラーメッセージ:しかし、今、新たなエラーが2行目の「見出し」指摘されていますあなたはバグを見つけます。私はRubyとRorで自分自身を改善したいと思います。

どうもありがとう

+0

お試しください <%= form_for(@article、url:articles_path)do | f | %> – Sunny

0

あなたが新しいアクションであなたの@article変数を初期化していないようです。 新しいアクションでは@article = Article.newと書いてください。うまくいくはずです。 @articleを初期化していないので、フォームにはゼロ値エラーが返されます。

+0

こんにちは私は質問をresposted前にあなたの答えを見ていない。 だから、私があなたに教えてくれたことをやってくれました。実際、私は新しい行動でそれを宣言していませんでした。 回答ありがとうございます。 おはよう –

関連する問題