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

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

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

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

Ruby

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

Q&A

解決済

1回答

895閲覧

Ruby on Rails 『activeadmin』上で親モデルの値を子モデルで取得できない。

asatosi

総合スコア23

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2019/01/14 03:09

Ruby on Railでサイトを作成しようとしています。『activeadmin』でうまくいかないところがありましたので、質問致します。

質問内容:
『activeadmin』上で親モデルの値を子モデルで取得しようとしています。新しいチケットを作成しようとするとエラーが発生します。

『f.input』の記述方法が適当でないため、エラーが表示されているのだと思いますが、原因がよくわかりません。その点についてご教授いただければと思います。

また、今回、エラーは出ていませんが、『column』や『filter』での項目の記述方法についても自信がありませんので、ご教授いただければ思います。

その他の情報:
・『devise』と『activeadmin』を組み合わせて使用しています。
・他のモデルとアソシエーションしないモデル(例:ticketモデル)については、レコードの閲覧/追加/編集/削除を問題なく行うこと出来ます。
・今現在、『ticket』テーブルには1件もレコードが登録されていません。

Ruby(Ruby

1class Ticket < ApplicationRecord 2 belongs_to :user 3 accepts_nested_attributes_for :user 4 belongs_to :stage 5 accepts_nested_attributes_for :stage 6 belongs_to :type 7 accepts_nested_attributes_for :type 8end

Ruby(Ruby

1class User < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 4 devise :database_authenticatable, 5 :recoverable, :rememberable, :validatable 6 7 has_many :tickets 8end

Ruby(Ruby

1class Stage < ApplicationRecord 2 has_many :tickets 3end

Ruby(Ruby

1class Type < ApplicationRecord 2 has_many :tickets 3end

Ruby(Ruby

1ActiveAdmin.register Ticket do 2 3permit_params :count, :b_name, :b_mail, :comment, users_attributes: [:name], stages_attributes: [:performance], types_attributes: [:kind] 4 5 6index do 7 selectable_column 8 id_column 9 column :ticket.user.name 10 column :ticket.stage.performance 11 column :ticket.type.kind 12 column :count 13 column :b_name 14 column :b_mail 15 column :comment 16 actions 17 end 18 19 filter :user_name, as: :string 20 filter :stage_performance, as: :string 21 filter :type_kind, as: :string 22 filter :count 23 filter :b_name 24 filter :b_mail 25 filter :comment 26 27 form do |f| 28 f.inputs do 29 f.has_many :users do |t| 30 t.input :name 31 end 32 end 33 34 f.inputs do 35 f.has_many :stages do |u| 36 u.input :performance 37 end 38 end 39 40 f.inputs do 41 f.has_many :types do |v| 42 v.input :kind 43 end 44 end 45 46 f.inputs do 47 f.input :count 48 f.input :b_name 49 f.input :b_mail 50 f.input :comment 51 end 52 f.actions 53 end 54 55end

エラー画像:
エラー画像:

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

そのformでどのようなことがしたいのかが質問からはよくわかりませんが
おそらくこういうことではなかろうかと。

ruby

1 form do |f| 2 f.inputs do 3 f.input :user, as: :select, collection: User.all.map{|u|[u.name, u.id]} 4 f.input :stage, as: :select, collection: Stage.all.map{|s|[s.performance, s.id]} 5 f.input :type, as: :select, collection: Type.all.map{|t|[t.kind, t.id]} 6 7 f.input :count 8 f.input :b_name 9 f.input :b_mail 10 f.input :comment 11 end 12 f.actions 13 end

投稿2019/01/22 07:41

--KT--

総合スコア90

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

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

asatosi

2019/01/25 05:00

回答ありがとうございます。 activeadminはformtasticを使用しているので、こういう書き方になるのですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問