2017-06-04 45 views
0

我一直在關注rails博客教程(你知道,那一個),我已經到了一個點,每次我引用@articles更新形式,鐵軌把它作爲一個零,它說:表單中的第一個參數不能包含零或爲空(導軌5)

形式

第一個參數不能包含零或爲空

這裏的形式

<h1>Edit article</h1> 

<%= form_for @article 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 %> 

而對於文章的控制器:

class ArticlesController < ApplicationController 
    def new 
    @article = Article.new 
    end 

    def create 
    @article = Article.new(article_params) 

    if @article.save 
    redirect_to @article 
    else 
    render 'new' 
    end 
    end 

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

    def index 
    @articles = Article.all 
    end 

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

    if @article.update(article_params) 
     redirect_to @article 
    else 
     render 'edit' 
    end 
    end 

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

回答

1

它看起來並不像你在你的文章控制器的編輯方法。

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

就這麼清楚了。編輯方法是用GET路徑顯示錶單所調用的方法。更新是採用格式並更新記錄的路徑。因此,形式爲經由編輯方法所示 GET,並經由PUT /PATCH更新方法處理

+0

工作就像一個魅力,不知道爲什麼我認爲它會沒有_edit_方法工作,謝謝! –

相關問題