2017-05-18 6 views
2

私はディレクトリ・ウェブサイトの一種を作成する必要があるチュートリアルに従っています。ユーザーがレビューを書くことができるページを持つ必要があるため、私はレビューのためのビューとフォームを作成します。私が行っているの手順は以下の通りであった。RailsアプリケーションのビューでのNoMethodError

1 - アプリ/ビュー/レビューのレビューフォルダ作成:

2 - それはレビューのために、部分的と呼ばれる_forms.html.erbをフォルダ内に作成

<%= simple_form_for(@review) do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.input :content, required: true %> 
    <%= f.hidden_field :place_id, required: true, value: @place_id %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit %> 
    </div> 
<% end %> 

3 - 場所のレビュー/ _formをレンダリングするために/ショーは、私が追加:

<div class="col-md-9"> 
    <h3>Reviews by People</h3> 
    <%= render 'reviews/form' %> 
    </div> 

私はPlacesControllerに行ってきましたので、フォームをレンダリングしようとすると、エラーを持って、私は次のコード行を置きますshowメソッド:

# GET /places/1 
    # GET /places/1.json 
    def show 
    @review = Review.new 
    end 

私のroutes.rbファイルにはレビューのルートがあります。私が得たエラー:

NoMethodError in Places#show 
Showing C:/workinrails/myyelpapp/app/views/reviews/_form.html.erb where line #5 raised: 
undefined method `content' for #<Review:0x9200a30> 
Trace of template inclusion: app/views/places/show.html.erb 

app/views/reviews/_form.html.erb:5:in `block in _app_views_reviews__form_html_erb___988880813_76383660' 
app/views/reviews/_form.html.erb:1:in `_app_views_reviews__form_html_erb___988880813_76383660' 
app/views/places/show.html.erb:13:in `_app_views_places_show_html_erb__530556826_71913768' 

は私が

+0

あなたの名前に少し混乱があります。ページvsプレイスあなたはおそらくPagesControllerとPlacesControllerの両方を持っていて、正しいPlacesControllerにshowアクションを追加するのを忘れました – rohan

+0

私はその情報を訂正しました。私はPagesControllerとPlacesControllerを持っています。私のPagesControllerには何もないdefホームメソッドしかありません。私のPlacesControllerのショーアクションで、私はこれを持っています:@review = Review.new – samureira

+0

レビューテーブルの列は何ですか? – rohan

答えて

1

はレビューのテーブル上のコンテンツと呼ばれる新しい列を追加し、より良い理解のために任意のコードスニペットを提供することができます

あなたが指定した列を追加する必要が
bundle exec rails g migration add_content_to_reviews content:string 

bundle exec rake db:migrate 
0

テーブル内の名前

rails g migration AddColumnNameToTableName column_name:datatype

その後、

レールデシベル:

注移行: - をあなたは、B/W & form_tagのform_for

のform_for

を違いを知っている必要があります

すでにあなたは、あなたが必要な列名をsapecifyする必要はありませんform_tag、あなたは任意の名前を使用することができます

form_tag

DBのカラム名をあなたのあなただけに指定する必要がありますので、のform_forここで使用して作成しましたあなたのコントローラでその価値のパラメータを取得します

関連する問題