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

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

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

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

Q&A

解決済

2回答

193閲覧

Migrateしたカラムへのデフォルト値の入力ができない

TsutomuTazawa

総合スコア10

Ruby on Rails 5

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

0グッド

0クリップ

投稿2018/01/08 12:37

以下のようなMigrateでカラムを追加したテーブルに、
その下のフォームにて入力フォームからの入力無しに
値を設定するような処置を行ったのですが、
値が入ってくれません。
どこか必要な設定が足りないフォームの書き方に
誤りがあるのでしょうか。
どなたかご教授いただければ幸いです。

class AddStatusToRequirementTicket < ActiveRecord::Migration[5.1] def change add_column :requirement_tickets, :status, :string end end
<%= form_with(model: requirement_ticket, local: true) do |form| %> <% if requirement_ticket.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(requirement_ticket.errors.count, "error") %> prohibited this requirement_ticket from being saved:</h2> <ul> <% requirement_ticket.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <div class="field"> <%= form.label :title %> <%= form.text_field :title, id: :requirement_ticket_title %> </div> <div class="field"> <%= form.label :requester %> <%= form.text_field :requester, id: :requirement_ticket_requester %> </div> <div class="field"> <%= form.label :"Request Group" %> <%= form.text_field :reqGroup, id: :requirement_ticket_reqGroup %> </div> <div class="field"> <%= form.label :"Service ID" %> <%= form.text_field :SID, id: :requirement_ticket_SID %> </div> <div class="field"> <%= form.label :"App Team" %> <%= form.text_field :appteam, id: :requirement_ticket_appteam %> </div> <%= hidden_field_tag :status, id: :requirement_ticket_status, :value => "OPEN" %> <div class="actions"> <%= form.submit %> </div> <% end %>

※エラーログ

Processing by RequirementTicketsController#create as HTML Parameters: {"utf8"=>"?", "authenticity_token"=>"CCya70ul08uCoaTqYuhDKoczDTgQ9Gcn4SSJ2LutD3KCHRava/l9miRGftGuzqyx6W3q7ZXnswSe/rPmkSJQZQ==", "requirement_ticket"=>{"title"=>"hi", "requester"=>"ju", "reqGroup"=>"hello", "SID"=>"01234", "appteam"=>"ki"}, "status"=>"{:id=>:requirement_ticket_status, :value=>\"OPEN\"}", "commit"=>"Create Requirement ticket"} (0.5ms) BEGIN SQL (1.5ms) INSERT INTO `requirement_tickets` (`title`, `requester`, `reqGroup`, `SID`, `appteam`, `created_at`, `updated_at`) VALUES ('hi', 'ju', 'hello', '01234', 'ki', '2018-01-08 12:21:22', '2018-01-08 12:21:22') (18.0ms) COMMIT Redirected to http://XXXXX/requirement_tickets/6 Completed 302 Found in 24ms (ActiveRecord: 20.1ms)

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

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

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

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

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

guest

回答2

0

ベストアンサー

「エラーログ」とありますが,これはただの「ログ」ですよね。
このログの Parameters をよく見ると,他のフィールドの値は "requirement_ticket" をキーとするハッシュに入っているのに対し,"status" はそれとは独立していることが分かります。

なぜこのように解釈されたのか,ぜひブラウザーでフォームの HTML を覗いて,各 input 要素がどうなっているか見てみてください。
name 属性の値が違っているのがわかりますね。

hidden_field_tag でなく form.hidden_field にしてみたらどうでしょう。

なお,コントローラーで requirement_ticket_params みたいのを定義している場合,permitstatus を追加するのをお忘れなく。

投稿2018/01/08 13:48

scivola

総合スコア2108

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

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

TsutomuTazawa

2018/01/08 15:14

>scivolaさん ログのタイトル表記の件は失礼しました。 form.hidden_fieldに修正して お話のpermitの項も修正したところ 無事に目的の要素の入力ができました。 ご教授いただきましてありがとうございました。
guest

0

つbin/rake db:migrate

投稿2018/01/08 13:00

hichon

総合スコア5737

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問