2016-11-04 13 views
0

私は初心者です。私がしようとしているのは、タイトルとコンテンツだけを持つフォームを作成し、それらを保存できるデータベースを構築することです。ruby​​ on railのメソッドエラーはありません

これは私の移行ファイル

class CreateMelons < ActiveRecord::Migration 
    def change 
    create_table :melons do |t| 

     t.string :title 
     t.text :content 

     t.timestamps null: false 
    end 
    end 
end 

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

def write 
     @title =params[:title] 
     @content = params[:content] 

     @new_post = Melon.new 
     @new_post.title =params[:title] 
     @new_post.content =params[:content] 
     @new_post.save 

     redirect_to "/list" 


    end 

され、エラーメッセージがここにあります。

undefined method `title=' for #<Melon id: nil, created_at: nil, updated_at: nil> 

理由はわかりません。 タイトル欄があります! rake db:migrateコマンドを実行しました。 私を助けてください!

+0

melon.rbモデルのテキストを表示できますか? – moveson

+0

このモデルのタイトルはありません '#' –

+0

同じマイグレーションを更新しましたか、それともマイグレーションしましたか? –

答えて

0

私は自分の質問に答えます。

モデルのschema.rbファイルまたはattrアクセサにそのようなメソッドがない場合、Ruby on Railの 'No method error'が表示されます。

したがって、移行ファイルにコンテンツ(たとえば、tilte、コンテンツなど)を追加し、データベースを移行してschcema.rbファイルを更新する必要があります。

または、データベースに追加の列を追加したくない場合は、単にattrアクセサとしてメソッドを追加できます。

+0

実際に移行するためにデータベースを削除する必要はありません。それ以外の人は、本番環境で移行を実行することはできません。 –

+1

@MichaelKohl私は編集しました。ありがとう! –

関連する問題