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

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

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

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

MySQL

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

Q&A

0回答

334閲覧

railsでDBの一部の情報のみを更新する

kimch

総合スコア8

Ruby on Rails 6

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

MySQL

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

0グッド

0クリップ

投稿2021/04/22 08:28

編集2021/04/23 00:23

#前提・実現したいこと
railsを使用してアプリを作成しております。
現在、ブラウザ上でプルダウンリストから選択肢を選ぶようにしているのですが、選択した情報をDB(applied_worksテーブル)のstatusカラムにAjax通信を利用して更新させたいと考えております。

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

ブラウザ上で選択した情報(選択肢)(app/views/applied_works_index.html.erb)をコントローラー(applied_works_controller.rb)で取得し、updateアクションでDBのstatusカラムのみをupdate_attributeにて更新させようとしていたのですが、どのようにブラウザ上で選択された情報のみ(status)を抽出するのか? 現状ではform_withを使用しようとしているが、果たしてform_withで実現できるのか、他の手段をとったほうが良いのかわからず質問させていただきました。

#該当するコード

ruby:index.html.erb

1index.html.erb 2<%= render "shared/header" %> 3 4<h1 class="subject"><%= "申込者一覧" %></h1> 5 6<% if @applied_works.present? then %> 7 <% @applied_works.each do |appliedwork| %> 8 <table> 9 <tr> 10 <th>姓</th> 11 <th>名</th> 12 <th>大学</th> 13 <th>誕生日</th> 14 <th>学年</th> 15 <th>学生詳細ページ</th> 16 <th>現在の状況</th> 17 </tr> 18 <tr align="center"> 19 <td><%= appliedwork.student.first_name %></td> 20 <td><%= appliedwork.student.last_name %></td> 21 <td><%= appliedwork.student.university %></td> 22 <td><%= appliedwork.student.birthday %></td> 23 <td><%= appliedwork.student.year %></td> 24 <td><%= link_to "移動する", student_path(id:appliedwork.student.id) %></td> 25 <%= form_with do |f| %> #←ここからが該当のコードです。 26 <td align ="center"><%= f.select :status, [["未対応", 1], ["採用予定", 2], ["お見送り",3], ["交渉中",4], ["口コミ待ち",5], ["終了",6]] %></td> 27 <td><%= f.submit "更新"%></td>#←ここまでが該当のコードです。 28 <% end %> 29 </tr> 30 </table> 31 <% end %> 32<% else %> 33 <%= "まだ応募はきていません。もうしばらくお待ちください。"%> 34<% end %> 35<%= render "shared/footer" %>

ruby:applied_works_controller.rb

1 2applied_works_controller.rb 3class AppliedWorksController < ApplicationController 4before_action :authenticate_student!, only:[:create] 5before_action :authenticate_company!, only:[:index] 6 7 def index 8 @applied_works = AppliedWork.where(business_id:params[:business_id]) 9 end 10 11 def create 12 @applied_works = AppliedWork.create(business_id: params[:business_id], student_id:current_student.id, status:1) 13 redirect_to root_path 14 end 15 16 def update 17 end 18 19 20 private 21 def status_params 22 params.require(:AppliedWork).permit(:status) 23 end 24end

#試したこと
index.html.erbにて、form_withのAjaxにてDBの情報を更新しようとしたが、DBに新しく情報が追加されてしまった。
このことから、選択する情報のstatusカラムのみの情報だけを抽出してupdateアクションで更新をかければ新しくデータが追加されることはないのではと考えたが、ブラウザ上で選択した情報を抽出することができなかった。

#問題の発生した環境
ruby :2.6.5
rails :6.0.3.5

#最後に
自身の実力不足にて質問させていただきます。
皆様のお力をお借りできたら幸いです。
何卒、よろしくお願い申し上げます。

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

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

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

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

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

winterboum

2021/04/22 23:07

やりたいことが抽象的過ぎてわかりにくいです。 どのtablerのどのcolumnなのか、試したこと のcodeはどんなのなのか を載せると回答を得やすいでしょう
kimch

2021/04/22 23:38

winterboum様 ご指摘ありがとうございます。 質問内容をわかりやすくご指摘いただいた内容を留意しながら、もう一度質問させていただきます。
winterboum

2021/04/22 23:46

この質問を編集してください。新しい質問をたてるのではなく。
kimch

2021/04/23 00:24

winterboum様 失礼いたしました。 こちらの質問修正させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問