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

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

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

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

Ruby

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

Q&A

解決済

2回答

410閲覧

Rails パラメーターのデータを取得したい

Toshi-6543

総合スコア19

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2019/01/25 04:19

前提・実現したいこと

Ruby on rails で出勤管理表を作成しています
ビューファイルで月間の表を作成してコントローラーにモデルではないパラメーターで
送り出すまではできたのですが、そこからデータを取り出すことができません。
下記の通り、starttimeやfinishttimeの変数にデータが取り込めるようにしたく
ご指導願います。

発生している問題・エラーメッセージ

undefined local variable or method `items_params' for #<AttendanceController:0x007f1bfd7e5f20>

該当のソースコード

{"utf8"=>"✓", "authenticity_token"=>"C5BXkOe46W+7mRkETFrgYawcupNaURZU0XoDy/UIbgkx17psFsLgF2uO6gk5uPgw5JGwyZ6O/FBUK9z4AcbvrQ==", "items"=> {"#<Staytime:0x007f1bfc291ca0>"=>{"id"=>"1", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc28f180>"=>{"id"=>"2", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc28c778>"=>{"id"=>"3", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc289c30>"=>{"id"=>"4", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc183048>"=>{"id"=>"5", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc180668>"=>{"id"=>"6", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc3854b8>"=>{"id"=>"7", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc3829e8>"=>{"id"=>"8", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc37ff90>"=>{"id"=>"9", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc37d420>"=>{"id"=>"10", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfc37a400>"=>{"id"=>"11", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfcc4acb0>"=>{"id"=>"12", "dataid"=>"58", "starttime"=>"16:52:28.281", "finishtime"=>"17:15:35.212"}, "#<Staytime:0x007f1bfcc8b418>"=>{"id"=>"13", "dataid"=>"59", "starttime"=>"07:41:12.188", "finishtime"=>"16:17:09.533"}, "#<Staytime:0x007f1bfeb6fac8>"=>{"id"=>"14", "dataid"=>"61", "starttime"=>"10:54:57.400", "finishtime"=>"22:38:00.131"}, "#<Staytime:0x007f1bfeb6ce18>"=>{"id"=>"15", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfeb62030>"=>{"id"=>"16", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfeb56cd0>"=>{"id"=>"17", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfcdc7778>"=>{"id"=>"18", "dataid"=>"62", "starttime"=>"21:00:40.864", "finishtime"=>""}, "#<Staytime:0x007f1bfcdafe48>"=>{"id"=>"19", "dataid"=>"63", "starttime"=>"15:30:40.192", "finishtime"=>""}, "#<Staytime:0x007f1bfcdac860>"=>{"id"=>"20", "dataid"=>"64", "starttime"=>"16:01:41.260", "finishtime"=>"22:19:19.909"}, "#<Staytime:0x007f1bfeb44d00>"=>{"id"=>"21", "dataid"=>"65", "starttime"=>"12:03:00.000", "finishtime"=>"12:09:00.000"}, "#<Staytime:0x007f1bfeb19678>"=>{"id"=>"22", "dataid"=>"66", "starttime"=>"08:13:00.000", "finishtime"=>"19:41:00.000"}, "#<Staytime:0x007f1bfec19de8>"=>{"id"=>"23", "dataid"=>"67", "starttime"=>"08:26:00.000", "finishtime"=>"21:33:00.000"}, "#<Staytime:0x007f1bfec066f8>"=>{"id"=>"24", "dataid"=>"68", "starttime"=>"06:36:00.000", "finishtime"=>""}, "#<Staytime:0x007f1bfebfb1e0>"=>{"id"=>"25", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfebf80f8>"=>{"id"=>"26", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfd040f40>"=>{"id"=>"27", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfd035d20>"=>{"id"=>"28", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfec4abf0>"=>{"id"=>"29", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfec2ba48>"=>{"id"=>"30", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}, "#<Staytime:0x007f1bfec28910>"=>{"id"=>"31", "dataid"=>"0", "starttime"=>"", "finishtime"=>""}}, "commit"=>"Save changes"}

ruby

1 2 3private 4 def items_require 5 params.require(:items).permit(:id,:finishtime, :starttime,:dataid,:Staytime) 6 end 7## 8def update 9 10  starttime = items_params['starttime']#これではエラーここでstartrimeやfinishtimeを変数に入れたい 11   finishtime = items_params['finishtime'] #同じくエラー  12   dataid = items_params['dataid']#同じくエラー 13 #問題が解決した後に一旦ループで新規のデータとそれ以外を2つの配列に詰めて、その後モデルと照合させるつもり 14 15 @user=User.all 16 #@items=items_require.all 17 @attendance=Attendance.all 18 today = Date.today 19 gekkanhyou(today) 20 21 render action: :indexedit 22 end

試したこと
starttime = items_params['starttime']
starttimeにデータを挿入したい。

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

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

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

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

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

guest

回答2

0

ベストアンサー

正直、モデルではないデータを受信した際に無理にストロングパラメーターを利用する必要はありません。

また、なぜスケジュール的なデータをよくわからないキーでハッシュにして纏めて送っているのか
正直わかりません。
ハッシュにするにしてもキーは日付でよいのではないでしょうか?
現在の方法ではキーの情報が消えてしまい無意味です


複数の日付のデータが送られててよくわかりませんが

ruby

1values = params[:items].values 2start_times = values.map{|v| v[:starttime]} 3finish_times= values.map{|v| v[:finishtime]} 4date_ids = values.map{|v| v[:dateid]}

こういうことでしょうか?

投稿2019/01/25 09:07

asm

総合スコア15147

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

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

Toshi-6543

2019/01/26 01:51 編集

回答ありがとうございます。 すいません。配列が格納されていること確認しました。取り出し方がうまくいかず。試行錯誤します。失礼しました。
Toshi-6543

2019/01/26 04:28

変数に値を入れる前に初期化するとうまくいきました。ありがとうございました。 久しぶりに進みます。また、ご指摘頂いた件は修正したいと想います。 start_times = [} finish_times=[] date_ids=[]
guest

0

starttime = items_params[:starttime]でもだめでしたか

投稿2019/01/25 04:41

sansansandodo

総合スコア248

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

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

Toshi-6543

2019/01/25 06:00 編集

starttime = items_params[:starttime] で実行しましたが、やはり undefined local variable or method `items_params' for #<AttendanceController:0x007fc6055e6d98> のエラーが出ました
sansansandodo

2019/01/25 07:27

あれよく見たらitem_params定義されてなくないですか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問