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

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

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

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

Q&A

解決済

2回答

955閲覧

enumで定義した中身をindexやshow画面で表示出来ない。

mamikko

総合スコア7

Ruby on Rails

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

0グッド

0クリップ

投稿2020/05/15 13:27

##enumで定義した配列の中身をshow画面で表示したい
オリジナルアプリを作成していて、productsテーブルのstatusカラムとvarietyカラムをenumを使って選択できるようにしました。Sequel Proで確認したところ、Luxury or Dailyではなく配列の数値で格納されていました。to_sメソッドを試したりしましたが、検討違いだったようで、、どうしたら表記されるのか分からず困っていますので、教えて頂けたらと思います。

model
product.rb

class Product < ApplicationRecord belongs_to :user enum status: [ :Luxury, :Daily ] enum variety: [ :Foods, :Goods ] mount_uploader :photo, ImagesUploader validates :user, presence: true validates :status, presence: true validates :variety, presence: true end

new.html.erb

<h1>商品登録</h1> <%= flash[:notice] %> <%= form_with model: @product do |f| %> <div><%= f.label :'status' %></div> <% Product.statuses.each do |status| %> <div><%= f.label ("enums.products.status#{status[0]}")%></div> <div><%= f.radio_button :status, status[0,1]%></div> <% end %> <div><%= f.label :'variety' %></div> <% Product.varieties.each do |variety| %> <div><%= f.label ("enums.products.variety#{variety[0]}")%></div> <div><%= f.radio_button :variety, variety[0,1]%></div> <% end %> <% end %>

index.html.erb

<% @products.each do |product| %> <tr> <td><%= product.user_id %></td> <td><%= product.status %></td> <td><%= product.variety %></td> </tr> <% end %>

show.thml.erb

<tr> <th>status</th> <th>variety</th> </tr> <tr> <td><%= @product.status %></td> <td><%= @product.variety %></td> </tr>

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

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

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

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

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

guest

回答2

0

自己解決

Enumを配列ではなくハッシュで数値ではなく文字で入力する

enum status: { Luxury: 'luxury', Daily: 'daily' } enum variety: { Foods: 'foods', Goods: 'goods' }

投稿2020/05/18 06:15

mamikko

総合スコア7

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

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

0

product.status とやって、 :Luxury, :Daily が表示されませんか?

投稿2020/05/15 14:35

winterboum

総合スコア23416

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

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

mamikko

2020/05/15 14:37

されないんです。どうしてなのか分からず。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問