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

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

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

dateは、date型や日付に関する関数や処理についてのタグです

Ruby

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

Ruby on Rails

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

HTML

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

Q&A

3回答

1087閲覧

チェックボックスを押されているときに翌日分の時間を足すようにしたい

ikt_erk122

総合スコア40

date

dateは、date型や日付に関する関数や処理についてのタグです

Ruby

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

Ruby on Rails

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

HTML

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

0グッド

0クリップ

投稿2019/06/06 06:01

編集2022/01/12 10:55

【やりたいこと】
出社・退社時間を編集する機能を追加する勉強をしています。編集する際にチェックボックスを押して編集すると翌日に退社する(24時間後)という機能を追加したいです。

【困っていること】
チェックボックスは実装できているが、翌日の時間を取得する方法や書き方を調べてもわからず押しても何も変わらない状態。
自分の考えはDateクラスのDate.tomorrowを使えばいけるのかなと思っています。

・attendances/edit.html.erb

<%= form_for(@user, url: update_attendances_path, method: :patch) do |f| %> <table class = "table-bordered table-striped table-condensed"> <thead> <tr> <th>日付</th> <th>曜日</th> <th>出社時間</th> <th>退社時間</th> <th>翌日</th> </tr> </thead> <tbody> <% @dates.each do |day| %> <%= fields_for "attendances[]", day do |af| %> <tr> <td><%= day.worked_on.to_s(:date) %></td> <td><%= %w{日 月 火 水 木 金 土}[day.worked_on.wday] %></td> <td> <% if day.worked_on > Date.today %> <%= af.time_field :started_at, :readonly => true, class: "form-control" %> <% else %> <%= af.time_field :started_at, class: "form-control" %> <% end %> </td> <td> <% if day.worked_on > Date.today %> <%= af.time_field :finished_at, :readonly => true, class: "form-control" %> <% else %> <%= af.time_field :finished_at, class: "form-control" %> <% end %> </td> <td> <% if day.worked_on > Date.today %> <% else %> <%= af.check_box :next_day, {}, "true", "false" %> <% end %> </td> </tr> <% end %> <% end %> </tbody> </table> <div class="btn-attendances-update"> <%= f.submit "更新", class: "btn btn-primary" %> <%= link_to "キャンセル", user_path(@user, params:{first_day: @first_day }), class: "btn btn-default btn-block" %> </div> <% end %>

・attedances_controller.rb

class AttendancesController < ApplicationController before_action :logged_in_user, only: :edit before_action :general_user, only: :edit before_action :hidden, only: :edit def create @user = User.find(params[:user_id]) @attendance = @user.attendances.find_by(worked_on: Date.today) if @attendance.started_at.nil? @attendance.update_attributes(started_at: current_time) flash[:info] = 'おはようございます。' elsif @attendance.finished_at.nil? @attendance.update_attributes(finished_at: current_time) flash[:info] = 'おつかれさまでした。' else flash[:danger] = 'トラブルがあり、登録出来ませんでした。' end redirect_to @user end def edit @user = User.find(params[:id]) @first_day = first_day(params[:date]) @last_day = @first_day.end_of_month @dates = user_attendances_month_date end def update @user = User.find(params[:id]) if attendances_invalid? attendances_params.each do |id, item| attendance = Attendance.find(id) attendance.update_attributes(item) end flash[:success] = '勤怠情報を更新しました。' redirect_to user_path(@user, params:{first_day: params[:date]}) if params[:next_day] == true Time.now.tomorrow end else redirect_to edit_attendances_path(@user, params[:date]) end end private def attendances_params params.permit(attendances: [:started_at, :finished_at, :note])[:attendances] end # ログインしていない一般ユーザーは勤怠編集画面を開けない def general_user @user = User.find(params[:id]) if !current_user?(@user) && !current_user.admin? redirect_to(root_url) end end # ログイン済みユーザーか確認 def logged_in_user unless logged_in? store_location flash[:danger] = "ログインしてください。" redirect_to login_url end end #管理者は勤怠編集画面の表示禁止 def hidden if current_user.admin? redirect_to(root_url) end end end

・attendances_helper

~ def attendances_invalid? attendances = true attendances_params.each do |id, item| if item[:started_at].blank? && item[:finished_at].blank? next elsif item[:started_at].blank? || item[:finished_at].blank? attendances = false flash[:danger] = "出社時間または退社時間を入力してください。" break elsif item[:started_at] > item[:finished_at] attendances = false flash[:danger] = "出社時間を退社時間より遅い時間に設定することはできません。" break end end return attendances end end

・users_controller.rb

class UsersController < ApplicationController def new @user = User.new end def show @user = User.find(params[:id]) if params[:first_day].nil? @first_day = Date.today.beginning_of_month else @first_day = Date.parse(params[:first_day]) end @last_day = @first_day.end_of_month (@first_day..@last_day).each do |day| unless @user.attendances.any? {|attendance| attendance.worked_on == day} record = @user.attendances.build(worked_on: day) record.save end end @dates = user_attendances_month_date @worked_sum = @dates.where.not(started_at: nil).count respond_to do |format| format.html format.csv do send_data render_to_string, filename: "#{@user.name}.csv", type: :csv end end end def create @user = User.new(user_params) if @user.save log_in @user flash[:success] = "ユーザーの新規作成に成功しました。" redirect_to @user else render 'new' end registered_count = import_emails redirect_to emails_path, notice: "#{registered_count}件登録しました" end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update_attributes(user_params) flash[:success] = "ユーザー情報を更新しました。" redirect_to @user else render 'edit' end end def index if params[:q] && params[:q].reject { |key, value| value.blank? }.present? @q = User.ransack(search_params, activated_true: true) @title = "検索結果" else @q = User.ransack(activated_true: true) @title = "ユーザー一覧" end @users = @q.result.paginate(page: params[:page]) end def destroy User.find(params[:id]).destroy flash[:success] = "削除しました。" redirect_to users_url end def edit_index @user = User.find(params[:id]) end def update_index @user = User.find(params[:id]) if @user.update_attributes(update_index_params) flash[:success] = "更新しました。" redirect_to users_url else render 'index' end end end

・schema.rb

create_table "attendances", force: :cascade do |t| t.date "worked_on" t.datetime "started_at" t.datetime "finished_at" t.string "note" t.integer "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.boolean "next_day", default: false t.index ["user_id"], name: "index_attendances_on_user_id" end

・show.html.erb

<tbody> <% @dates.each do |day| %> <%= fields_for "attendances[]", day do |af| %> <tr> <td><%= day.worked_on.to_s(:date) %></td> <td class="<%= css_class %>"><%= %w{日 月 火 水 木 金 土}[day.worked_on.wday] %></td> <td><%= day.started_at.to_s(:hour) if day.started_at.present? %></td> <td><%= day.started_at.floor_to(15.minutes).to_s(:min) if day.started_at.present? %></td> <td> <% if day.worked_on == Date.today && day.started_at.nil? %> <%= button_to "出社", user_attendances_path(@user), class: "btn btn-xs btn-primary" %> <% end %> </td> <td><%= day.finished_at.to_s(:hour) if day.finished_at.present? %></td> <td><%= day.finished_at.floor_to(15.minutes).to_s(:min) if day.finished_at.present? %></td> <td> <% if day.worked_on == Date.today && day.started_at.present? && day.finished_at.nil? %> <%= button_to "退社", user_attendances_path(@user), class: "btn btn-xs btn-primary" %> <% end %> </td>   <td>  <% if day.started_at.present? && day.finished_at.present? %> <%= working_times(day.started_at, day.finished_at) %> <% seconds = (day.finished_at - day.started_at).to_i %> <% @total_seconds = @total_seconds.to_i + seconds %> <% end %> </td> </tr> <% end %> <% end %> </tbody>

・見本(編集前)
イメージ説明
・見本(編集後)
イメージ説明

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

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

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

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

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

guest

回答3

0

params の読み方ですが、logをみると(必要なところだけ抜き出すと)

Parameters:  {  "attendances"=>{   "63"=>{"started_at"=>"10:00:00.000", "finished_at"=>"22:00", "next_day"=>"false", "note"=>"" },

という構造をしている、というのが見えるかと思います。
これをみれば読み方が判るかと思います。

show.html.erb と 画像のtableが一致しない(翌日チェックボックスや在社時間のTDがない)ので,確認出来ないのですが 在社時間の計算まではできている、と考えて良いですか?
その前提で。
やりたいことは
「9:00から18:00まで在社した」となってるが、
じつは翌日の18:00だから それで在社時間を計算する
ということだと思います。
すると、「翌日18:00の時間を求めて」しなくても「当日の18:00」で在社を計算した後、24時間を加えればよいのでは。

で、そのnext_dayの得方ですが、
viewでは next_day はbooleanになっているのにschemaではdatetimeになっています。ですので controllerで取り込んで day.next_day にしまうときに false/trueをdatetimeに変換するで、うまく行っていないのでは。
next_dayをbooleanに変更したmodelにしておけば、day.next_day でtrue/falseが得られる様になるかと思います。

投稿2019/06/24 10:41

winterboum

総合スコア23284

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

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

0

時間を取らせてしまい申し訳なかったです。
あまり進展が望めないようなので、コードを読んで回答しようと思いました。が、
ちょっとコードを読んでも結局何がしたいのかよくわからなかったため
「送信されてきたパラメータの退社時間を、翌日チェックがあれば翌日、なければ当日の時刻として出力する」
コードを書きます。

前提: 以下の戻り値をパラメータとする
変更点は以下

  • 時間だけだと当日、翌日の判別が付かないので日付がわかるものを付与した
  • パラメータの2つ目以降にも仮の日時の値を入れた
  • パラメータの量が多すぎるので3つに減らした

rb

1ActionController::Parameters.new "utf8"=>"✓", "authenticity_token"=>"sDgo050bPWePwVXakqTW8UdgOkO/mdm53j9FTQu2nf0OGvhMtDjs47N48VwJw5BKk1+6LYOFoyHjlNJnueCq9Q==", "attendances"=>{"63"=>{"started_at"=>"2019-06-24 10:00:00", "finished_at"=>"2019-06-24 22:00:00", "next_day"=>"false", "note"=>""}, "64"=>{"started_at"=>"2019-06-24 09:00:00", "finished_at"=>"2019-06-24 21:00:00", "next_day"=>"true", "note"=>""}, "65"=>{"started_at"=>"2019-06-24 9:30:00", "finished_at"=>"2019-06-24 21:30:00", "next_day"=>"false", "note"=>""}}

コード

rb

1def attendances_params 2 params.require(:attendances).permit("63": [:started_at, :finished_at, :next_day, :note], "64": [:started_at, :finished_at, :next_day, :note], "65": [:started_at, :finished_at, :next_day, :note]) 3end 4 5attendances_params.values.each do |data| 6 if data[:next_day] == "true" 7 puts data[:finished_at].to_time.tomorrow 8 else 9 puts data[:finished_at].to_time 10 end 11end 12 13# 2019-06-24 22:00:00 +0900 14# 2019-06-25 21:00:00 +0900 15# 2019-06-24 21:30:00 +0900

自分でアプリケーションを作成する前にRailsチュートリアルで基礎を身につけてください。

投稿2019/06/24 08:58

Mugheart

総合スコア2340

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

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

0

def edit を見ただけでは どこに入れたいのかが分からないのでとりあえず、24時間後の日時を得る方法だけ。
Date ではなく Time です。Dateでは時刻がないので

Time.now.tomorrow

投稿2019/06/08 00:18

winterboum

総合スコア23284

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

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

ikt_erk122

2019/06/08 14:03

回答ありがとうございます。 追記でusers_controllerとattendances_controllerを追加しました。 editアクションにTime.now.tomorrowを書く際にチェックボックスがオンの状態に取得するにかどのように書けばよろしいですか?
winterboum

2019/06/08 20:06

def edit ではなく def update の方ですね。 log は見てますか? logに Parameters: { 。。。。。 } というのがありますから、そこをみると自ずとわかると思います。
ikt_erk122

2019/06/09 06:56

Started GET "/users/6/attendances/2019-06-01/edit" for 126.2.106.214 at 2019-06-09 15:27:39 +0900 Cannot render console from 126.2.106.214! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 Processing by AttendancesController#edit as HTML Parameters: {"id"=>"6", "date"=>"2019-06-01"} User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 6], ["LIMIT", 1]] User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 6], ["LIMIT", 1]] CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 6], ["LIMIT", 1]] Rendering attendances/edit.html.erb within layouts/application Attendance Load (0.3ms) SELECT "attendances".* FROM "attendances" WHERE "attendances"."user_id" = ? AND (worked_on >= '2019-06-01' and worked_on <= '2019-06-30') ORDER BY worked_on [["user_id", 6]] Rendered attendances/edit.html.erb within layouts/application (12.9ms) Rendered layouts/_shim.html.erb (0.3ms) Rendered layouts/_header.html.erb (0.9ms) Completed 200 OK in 62ms (Views: 55.6ms | ActiveRecord: 0.7ms)
ikt_erk122

2019/06/09 07:14

updateアクションにTime.now.tomorrowを追加しました。viewに書く際にチェックボックスがオンの時に反映させるにはどのように書けばいいでしょか?
winterboum

2019/06/09 11:24

そのlogはeditの時ですね。 updateの時のParamaterを見て下さい
ikt_erk122

2019/06/09 13:02

Processing by AttendancesController#update as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"sDgo050bPWePwVXakqTW8UdgOkO/mdm53j9FTQu2nf0OGvhMtDjs47N48VwJw5BKk1+6LYOFoyHjlNJnueCq9Q==", "attendances"=>{"63"=>{"started_at"=>"10:00:00.000", "finished_at"=>"22:00", "next_day"=>"false", "note"=>""}, "64"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "65"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "66"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "67"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "68"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "69"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "70"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "71"=>{"started_at"=>"", "finished_at"=>"", "next_day"=>"false", "note"=>""}, "72"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "73"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "74"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "75"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "76"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "77"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "78"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "79"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "80"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "81"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "82"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "83"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "84"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "85"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "86"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "87"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "88"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "89"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "90"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "91"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}, "92"=>{"started_at"=>"", "finished_at"=>"", "note"=>""}}, "commit"=>"更新", "id"=>"6", "date"=>"2019-06-01"}
ikt_erk122

2019/06/09 13:02

こちらでしょうか?
winterboum

2019/06/09 17:13

そうです。 チェックを入れた日といれてない日で "next_day"=>"???",が違っているので、それを判断して「翌日に退社する(24時間後)」という措置を行えばよいです。
ikt_erk122

2019/06/10 03:16

if params[:next_day] == true Time.now.tomorrow end と書いてみたのですが、変わらなかったです。書き方が間違っているのでしょうか? あと、時間を表示するshow.html.erbを追記しました。7つ目の<td>に翌日分の時間を表示させたいです。
winterboum

2019/06/10 03:30

実はソースを拝見して、どんなふうになってほしいのか、というのが読み取れていません。 チェックの有無はまず置いておいて、createの完成版(チェックの対応は後)を作って頂けますか? そのあとで、チェックがない場合と入った場合で、  どのモデルのどの項目が、何から何に変わって欲しいのか を教えて下さい。
ikt_erk122

2019/06/10 06:18

attendancesコントローラのcreateアクションのことでしょうか?そうだとしたらすでに記載してあります。 モデルの項目とはなんですか?理解できていなくてすみません
winterboum

2019/06/11 09:00

例えば 6/7 の 9:45に6/4を編集して実行したとします。 チェックを入れなかった場合と、入れた場合で  どのデータの  どの項目が  入れなかった場合は「これこれ」だが、  入れた場合には「こんな風」になってほしい のでしょうか
ikt_erk122

2019/06/24 03:10

すみませんパソコンが使えない状態で返信が遅れてしまいました。 追記したように5/2の在社時間は9時間でチェックを入れて編集したら翌日分の時間(24時間)を追加して33時間をいう風に表示させたいです。
Mugheart

2019/06/24 05:02

横から失礼します。 if params[:next_day] == true Time.now.tomorrow end と書いてみたのですが、変わらなかったです。書き方が間違っているのでしょうか? これについてですが、params[:next_day]の中身は確認しましたか? "attendances"=>{"63"=>{"started_at"=>"10:00:00.000", "finished_at"=>"22:00", "next_day"=>"false", "note"=>""}, ...} となっているのでそれでは取得できていないと思いますが...。 デバッグを行って逐一確認してください。 それでもわからなかった場合に確認した事柄を添えて質問できるとGoodです。 もし、入れ子のハッシュから求める値を取り出せないのであれば、 ハッシュの勉強からやり直してもらうことになります。
ikt_erk122

2019/06/24 06:18

回答ありがとうございます。 チェックを入れて編集するとattendances"=>{"63"=>{"started_at"=>"10:00:00.000", "finished_at"=>"17:00:00.000", "next_day"=>"true", "note"=>""},となりますが、時間は変わらないです。チェックを入れないと"next_day"=>"false"になります。
Mugheart

2019/06/24 06:38

もう一度質問します。 params[:next_day]の中身は確認しましたか?
Mugheart

2019/06/24 06:43

もし僕の言っている意味がわからなければそのように伝えてください。
ikt_erk122

2019/06/24 06:47

すみません。params[:next_day]の中身の確認方法がわかりません
Mugheart

2019/06/24 06:54

railsであれば byebug を使ってデバッグできます。 byebug if params[:next_day] == true Time.now.tomorrow end のように確認したい行の手前に書くことでデバッグできます。 あとは rails server で起動して該当箇所を通るような操作をします。 今回はフォームの送信ですかね、普通に入力して普通に送信してください。 すると画面が固まるのでログを確認してください。 入力を受け付けるようになっているはずなのでそこで params[:next_day] と入力すれば値が返ってきます。 詳しくは自分で検索して調べてください。
ikt_erk122

2019/06/24 07:05

ありがとうございます。 チェックを入れて確認したら, [33, 42] in /home/ec2-user/environment/tutorial_app/app/controllers/attendances_controller.rb 33: attendance.update_attributes(item) 34: end 35: flash[:success] = '勤怠情報を更新しました。' 36: redirect_to user_path(@user, params:{first_day: params[:date]}) 37: byebug => 38: if params[:next_day] == true 39: Time.now.tomorrow 40: end 41: else 42: redirect_to edit_attendances_path(@user, params[:date]) (byebug) nil とnilになりました
Mugheart

2019/06/24 07:08

ということは、わかりますか? params[:next_day] では "next_day"=>"true"または"false" の値を取得できていないということです。 if params[:next_day] == true Time.now.tomorrow end と書いてみたのですが、変わらなかったです。書き方が間違っているのでしょうか? これに答えるとするならば「間違えている」となります。
ikt_erk122

2019/06/24 07:38

if文の書き方が間違っているのでしょうか?
Mugheart

2019/06/24 07:46

いいえ、違います。 params[:next_day] が常に nil であることは理解していますか? if nil == true は常に false であるため Time.now.tomorrow は必ず実行されません。 さて、ここで何が問題かわかりますでしょうか。 そもそも if nil == true はあなたの行いたかったことでしょうか? 違うと思います。期待していたものは if (true もしくは false) == true のはずです ではなぜそれができていないのか、 それは params[:next_day] が ture または false を取得できていないからです。 これは単に書き方が違うからです。 その書き方ではパラメータから期待する値を取得できていません。 そういう意味で書き方を間違えていると言っています。
ikt_erk122

2019/06/24 12:50

すみません、他の書き方がわからないのですが、ヒントでいいので教えていただけないでしょうか?
Mugheart

2019/06/24 15:57

params[:attendances]で"attendances"=>{ ... }の値{ ... }部分が取得できます。 そしてparams[:attendances]["63"]で"attendances"=>{ "63"=> { ... } }の値{ ... }部分が取得できます。 この要領で:next_dayまでたどるとparams[:attendances]["63"][:next_day]となります。 ただ、["63"]となっている部分が["64"],["65"]と複数あるので複雑になっています。 あと、一応言っておくとparams[:attendances]["63"][:next_day]で取り出せる値は "true"もしくは"false"となりますが、どちらも文字列、Stringです。Booleanではないので注意してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問