うまくentryの中のデータを扱いがよくわからないので質問させていただきます。ちなみにjsonの出力しようとしています。
entry = is_login ? recruit.entries.users_entry(@login_user.id) : nil if entry.presence entry_status = entry.first.status, result_status = entry.first.result, memo = entry.first.memo else entry_status = "pending", result_status = "pending", memo = "" end { entry_status: entry_status, #これだけ[]になる result_status: result_status, memo: memo }
entryの中
[{:id=>1, :user_id=>1, :offer_id=>2, :recruit_id=>1, :status=>"end", :result=>"end", :memo=>"memo_a", :created_at=>"2018-12-06T20:59:11.000+09:00", :updated_at=>"2018-12-06T20:59:11.000+09:00", :is_deleted=>0, :lock_version=>0}]
このような形です。最初のif でentryがあるかどうかで分岐させたいのでif文使いました。
entryがあるかどうかは、ユーザーがログインしてるかどうかで判定しています。
entryの中身が[]なので、.firstで[]外して,そこでほしい値を.statusで:statusの値という形でとりました。
その次に{}の中で取り出した値を出力したいのですが、最初のentry_statusの出力が["end", "end", "memo_a"]となっており、全てが入ってしまっているのですが、ご説明していただける方いらっしゃいますでしょうか?
出力自体は、entry_status.first とまた.first使いましたところ改善はできました。
以上なのですが、まだ学んでいる最中で理解がなかなか悪くアドバイスなどいただければ助かります。よろしくお願いいたしますm(__)m
あなたの回答
tips
プレビュー