質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

4765閲覧

Rails gem refile利用をした際に新規登録ができない

abab7200

総合スコア120

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/08/15 13:19

編集2017/08/17 13:45

画像アップロードの gem refile利用し、データ登録をしようとしています。
その際に登録フォームから送信した際にundefined method `eyecatch_id_id_will_change!' となります。
どなたかご教授頂ければと存じます。

view

= simple_form_for(@article, url: articles_path) do |f| = f.input :title = f.attachment_field :eyecatch_id = f.input :content = f.input :publish_time = f.submit "送信"

model

class Article < ActiveRecord::Base attachment :eyecatch_id end

controller

def new @article = Article.new end def create #ここでエラーになる @article = Article.new(article_params) if @article.save redirect_to new_article_path else render 'new' end end private def article_params params.require(:article).permit(:title, :content, :publish_time, :eyecatch_id) end

コンソール上のエラー

undefined method `eyecatch_id_id_will_change!' for #<Article:0x007fbccb5e5bc0> {"utf8"=>"✓", "authenticity_token"=>"qf3QBJDOsKGsab2bOSPuwrmH4lPphINBb8AjXDr2vsFlx6z4WBU68cPI6EHf+JsQs0sw09Yb/Y7PscTIC7m/Rg==", "article"=>{"title"=>"だだだ", "eyecatch_id"=>#<ActionDispatch::Http::UploadedFile:0x007fbcd1e5c028 @tempfile=#<Tempfile:/var/folders/4v/dsv8p_992w1f1f5bjqfwrp2h0000gn/T/RackMultipart20170817-6393-tb00jm.jpg>, @original_filename="Ckk7iw5VAAAGtin.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"article[eyecatch_id]\"; filename=\"Ckk7iw5VAAAGtin.jpg\"\r\nContent-Type: image/jpeg\r\n">, "content"=>"だだ", "publish_time(1i)"=>"2017", "publish_time(2i)"=>"8", "publish_time(3i)"=>"17", "publish_time(4i)"=>"13", "publish_time(5i)"=>"41"}, "commit"=>"送信"}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DBのarticlesテーブルにeyecatch_idというカラムは存在しますか?
もしかしたら、eyecatchというカラム名になっていないでしょうか。
エラー自体はそのカラムが無いのに更新しようとして起こるエラーだと思います。

###追記
自分でもrefileのテスト環境を構築しました
view

ruby

1= f.attachment_field :eyecatch

model

ruby

1attachment :eyecatch

と変更してみてください。
それでいけそうです。

投稿2017/08/15 16:09

編集2017/08/17 14:52
chelsy7110

総合スコア596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abab7200

2017/08/16 11:41

eyecatch_idからeyecatchへカラム名を変更したので その影響かと思いましたが、テーブル一覧では正しく変更されていました。 Article.column_names => ["id", "user_id", "user_name", "string", "title", "content", "text", "track_count", "publish_time", "created_at", "updated_at", "eyecatch"]
abab7200

2017/08/16 12:31

その後 modelとテーブルを削除し再度試行しましたが、同様のエラーが発生しました。。
chelsy7110

2017/08/16 21:31

>eyecatch_idからeyecatchへカラム名を変更したので その影響かと思いましたが、テーブル一覧では正しく変更されていました。 いや、eyecatch_idというカラムがないとダメなので、それだとダメなはずです。 refileはこの場合eyecatch_idというカラムが必要です。 で、保存するときにeyecatch_idというカラムに更新をしにいくのに実際はそのカラムがないのでエラーが出ています。 ですのでeyecatch_idというカラムに戻してみてください。
abab7200

2017/08/17 01:29

chelsy7110様 朝早くにありがとうございます 理解しました。夜になりますが試して見ます。
abab7200

2017/08/17 13:48

chelsy7110様 eyecatch_idへカラム名を変更しましたが、`eyecatch_id_id_will_change!' とエラーになりました。 最新のエラー情報を質問の内容に反映しました。 下記のサイトを参考にし反映しているのですが、本エラーの発生原因が不明でございます https://suin.io/553
abab7200

2017/08/19 04:44

chelsy7110様 modelとフィールドを頂いた内容で変更すると稼働しました! 長期間ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問