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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

966閲覧

入力した金額データを登録したい

kataokahidetosi

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/06/27 10:22

<% @page_title = "収入科目 データ登録" %> <h2><%= @page_title %></h2> <div class="toolbar"><%= link_to "収入科目データ一覧に戻る", income_values_path %></div> <%= form_for(@form, url: income_values_path, method: :post) do |fb| %> <!-- 年月テーブル --> <table> <tr> <th>登録年月</th> <th>名称</th> <th>値</th> <th>備考</th> </tr> <% cnt=0 %> <%= fb.fields_for :income_values do |f| %> <%= f.hidden_field :income_id %> <tr> <td> <%= f.date_select :year_month, start_year: 2010, end_year: Time.current.year, use_month_numbers: true, discard_day: true, default: @year_month %> </td> <th> <%= @incomes.find(@form.income_values[cnt].income_id).name %> </th> <% cnt+=1 %> <td><%= f.text_field :value, size: 8 %></td> <td><%= f.text_field :description, size: 8 %></td> </tr> <% end %> </table> <div><%= fb.submit %></div> <% end %>

ここでsubmitを踏んだら

NameError (uninitialized constant Form::IncomeValue Did you mean? Form::IncomeValues):

というエラーが発生します。
エラー文を参考にincome_value.controller.rbを確認しましたが

def create @form = Form::IncomeForm.new(income_form_params) if @form.save redirect_to :income_values, notice: "登録しました" else redirect_to :income_values, notice: "登録に失敗しました" end end def income_form_params params .require(:form_income_form) .permit(income_values_attributes: Form::IncomeValue::REGISTRABLE_ATTRIBUTES) end

どこをどう直したらいいのか見当がつきません。
解決のためのアドバイスをいただきたく、よろしくお願いします。

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

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

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

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

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

winterboum

2020/06/27 10:49

エラーメッセージを省略しないでください。どのfileの何行目か、がでているとおもいます。 その行がどれなのかわかるようにして、そのfileを載せてください
kataokahidetosi

2020/06/27 10:58

すいません。 ``` Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.0ms | Allocations: 2258) NameError (uninitialized constant Form::IncomeValue Did you mean? Form::IncomeValues): app/controllers/income_values_controller.rb:37:in `income_form_params' app/controllers/income_values_controller.rb:26:in `create' ``` このような感じでよろしいでしょうか。
winterboum

2020/06/27 11:01 編集

26行目、37行目ってどれ?
kataokahidetosi

2020/06/27 11:03

26行目が ``` @form = Form::IncomeForm.new(income_form_params) ``` あと37行目が ``` .permit(income_values_attributes: Form::IncomeValue::REGISTRABLE_ATTRIBUTES) ``` になっております。 お手間を取らせてすいません。
guest

回答1

0

models か controller か、その下の concerns にかわかりませんが、
form という dir は有りますか?
その中に income_value.rb もしくは income_volumes.rb というfile は有りますか?
ありましたらそのfile の path と、そのfileの内容を確認してください。
そこに 定数 REGISTRABLE_ATTRIBUTES は有りますか?
そのfileには class(もしくは module) IncomeValue が有りますか? それとも IncomeValues が有りますか?

投稿2020/06/27 11:08

winterboum

総合スコア23329

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

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

kataokahidetosi

2020/06/27 11:15

formフォルダにincome_values.rbというファイルがあります。 このファイルの中身はこうです ``` class Form::IncomeValue < IncomeValue REGISTRABLE_ATTRIBUTES = %i(income_id year_month value description) attr_accessor :income_id attr_accessor :year_month attr_accessor :value attr_accessor :description end ```
winterboum

2020/06/27 11:23

これでエラーにならないか、、、 filename が income_values.rb の場合そこに定義するclass はFrom::IncomeValues でなければなりません。 From::IncomeValue にするなら、file名を income_value.rb になおしてください
kataokahidetosi

2020/06/29 08:21

お返事遅れてすいません。 ファイル名を修正したらエラー解決できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問