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

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

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

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1256閲覧

編集画面にラジオボタンを実装したがデータが書き換わらない

gs13

総合スコア15

Ruby

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/06/13 04:11

編集2019/06/18 06:51

前提・実現したいこと

編集画面にラジオボタンの実装。
ラジオボタンで一覧画面での表示フラグを切り替えたい。

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

編集画面のラジオボタンで表示フラグ(show_flag)をtrueに切り替えてもデータベースに反映されない。デフォルトのfalseのままになっている。

該当のソースコード

Viewのフォーム
_form.html.erb

ruby

1<%= form_for @carrier do |a| %> 2 3<% if @carrier.errors.any? %> 4 <h3>入力した内容にエラーが<%= @carrier.errors.count %>件あります</h3> 5 <ul> 6 <% @carrier.errors.full_messages.each do |message| %> 7 <li><%= message %></li> 8 <% end %> 9 </ul> 10<% end %> 11 12<p> 13<%= a.label :コード %> 14<%= a.text_field :code %> 15</p> 16 17<p> 18<%= a.label:名前 %> 19<%= a.text_field:name %> 20</p> 21 22<p> 23 <%= a.label :show_flag, :show %> 24 <%= a.radio_button :show_flag, true %> 25 <%= a.label :show_flag, :hide %> 26 <%= a.radio_button :show_flag, false %> 27</p> 28 29<%= a.submit "登録" %> 30 31<% end %> 32 33

マイグレーションファイル
20190611080735_add_valid_flag_to_carriers.rb

class AddValidFlagToCarriers < ActiveRecord::Migration[5.0] def change add_column :carriers, :show_flag, :boolean, default:false, null:false end end

Viewの一覧画面
index.html.erb

Ruby

1<div> 2 <div class="col-lg-12"> 3 <h3 class="page-header"><%=raw @page_title || 'AmazonCarrierマスター管理'%></h3> 4 </div> 5 <% if flash[:notice] %> 6 <p><%= flash[notice] %></p> 7 <% end %> 8 <table> 9 <thead> 10 <tr> 11 <th class>フラグ</th> 12 <th class=''>コード</th> 13 <th class=''>名前</th> 14 </tr> 15 </thead> 16 <tbody> 17 <% @carrier.each do |a| %> 18 <tr> 19 <td><%= a.show_flag %></td> 20 <td><%= link_to a.code, edit_carrier_path(a.id) %></td> 21 <% if a.show_flag == true then %> 22 <td><%= a.name %></td> 23 <% end %> 24 </tr> 25 <% end %> 26 27 <%= link_to "新規登録", new_carrier_path %> 28 <input type="checkbox" name="show_all" value="flag">全部show 29 </tbody> 30 </table> 31</div> 32

carriers_controller.rb

ruby

1class CarriersController < ApplicationController 2 def index 3 #carrier = Carrier.find_by(show_flag: false) 4 @carrier = Carrier.all 5 end 6 7 def edit 8 @carrier = find_carrier_by_id 9 end 10 11 def update 12 @carrier = find_carrier_by_id 13 if @carrier.update(carrier_params) 14 redirect_to carriers_path, notice: "#{@carrier.name}を更新しました。" 15 else 16 render action: :edit 17 end 18 end 19 20 def new 21 @carrier = Carrier.new 22 end 23 24 def create 25 #@carriers = Carrier.new(params[:carrier]) 26 @carrier = Carrier.new(carrier_params) 27 if @carrier.save 28 #flash[:notice]="新規データを登録しました。" 29 redirect_to carriers_path, notice: "#{@carrier.name}を登録しました。" 30 #redirect_to "/carriers" 31 #redirect_to carriers_path 32 else 33 #failse kakikomi 34 render action: :new 35 end 36 end 37 38 def destroy 39 @carrier = find_carrier_by_id 40 @carrier.destroy 41 redirect_to carriers_path, notice: "#{@carrier.name}を削除しました。" 42 end 43 44 def carrier_params 45 params.require(:carrier).permit(:code, :name) 46 end 47 48 def find_carrier_by_id 49 Carrier.find(params[:id]) 50 end 51 52end 53

carrierテーブル

編集画面
イメージ説明

一覧画面

試したこと

文法の確認
参考にしたリンク
【開発メモ】Ruby on Railsのform_forでラジオボタンを設置する方法
https://freesworder.net/rails-form_for-radio/

補足情報(FW/ツールのバージョンなど)

Rails 5.0.7.2
Ubuntu VERSION="16.04.6 LTS (Xenial Xerus)"
Win10 VirtuaBox上
ruby 2.4.6p354
gem 2.6.14.4

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

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

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

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

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

winterboum

2019/06/15 00:16

controllerを見せて下さい
gs13

2019/06/17 01:52

載せました
guest

回答2

0

ベストアンサー

def carrier_params params.require(:carrier).permit(:code, :name) end

ここに show_flag を追加して下さい

投稿2019/06/17 03:31

winterboum

総合スコア23284

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

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

gs13

2019/06/17 04:11

解決しました。初歩的なミスですいません。ありがとうございました。
guest

0

誤答です。
失礼しました。

投稿2019/06/13 04:21

編集2019/06/13 04:29
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

gs13

2019/06/13 04:53

falseにチェックを入れるとfalseに上書きされるのではないのですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問