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

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

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

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

Ruby on Rails

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

Q&A

2回答

1224閲覧

ボタンの表示方法について

ikt_erk122

総合スコア40

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/02/18 13:51

出社ボタンと退社ボタンを現実の日にちだけに表示させ、出社ボタンを押す前は退社ボタンは表示させず、出社ボタンを押した際に退社ボタンが表示されるようにしたいです。

初心者で何もわからずすみません
ご教授よろしくお願いします。
イメージ説明

<show.html.erb>

 <tbody> <%(@first_day..@last_day).each do |date|%> <tr> <td><%= @first_day.month %>/<%= date.day %></td> <td><%= @week[date.wday] %></td> <td></td> <td></td> <td><%= button_to "出社"%></td> <td></td> <td></td> <td><%= button_to "退社"%></td> <td></td> <td></td> </tr> <%end%> </tbody>

<users_controller.rb>

def show @user = User.find(params[:id]) @microposts = @user.microposts.paginate(page: params[:page]) @date = Date.today @start_date = Date.new(Date.today.year, Date.today.month, 1) @end_date = @start_date.end_of_month if current_user.admin? || current_user.id == @user.id # 曜日表示用に使用する @week = %w{日 月 火 水 木 金 土} @date = DateTime.current # 既に表示月があれば、表示月を取得する if not params[:first_day].nil? @first_day = Date.parse(params[:first_day]) else # 表示月が無ければ、今月分を表示 @first_day = Date.current.beginning_of_month end #最終日を取得する @last_day = @first_day.end_of_month # 取得月の初日から終日まで繰り返し処理 (@first_day..@last_day).each do |day| end else flash[:warning] = "他のユーザーの勤怠情報は閲覧できません。" redirect_to current_user end end

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

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

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

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

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

guest

回答2

0

当日かどうかは、date.today?で判定できるので、それを使って表示と非表示を切り替えるといいと思います。

出社退社ボタンの表示非表示についてですが、
今ある情報から推測するに、おそらく今後、ユーザーごとの出退勤履歴データを持つモデルを作ることになると思います。
最低限のカラムとしては、user_id, attended_at, leaved_atでしょうか。
該当ユーザーの当日の出退勤履歴が無ければ出社ボタンを表示、出退勤履歴があって、
leaved_atが空ならば退社ボタンを表示といった感じです。

出社ボタンを押すと退社ボタンを表示する挙動はjavascriptを使うことになります。
場合によってはajaxを使ったほうがいいかもしれません。

Railsの入門書や入門サイトを一通りやれば大抵出てくるような内容なので、
一旦落ち着いて学習したほうが効率的な気がしています。

投稿2019/02/19 01:40

Kta-M

総合スコア456

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

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

ikt_erk122

2019/02/20 08:40

回答ありがとうございます。 さっそく取り掛かりたいと思います また何かあったら質問させてください
guest

0

出社しているかどうか、退社しているかどうか、のtrueORfalseの変数を作ってみてはどうでしょうか。
少し構造が変わりますが、ボタンをhtmlのボタンにして、それぞれpostをするようにしてみてはどうでしょうか。出社の処理に飛ぶと、出社しているかどうかの変数をtrueに変えます。
ホームに戻ると、if文で、出社ぼたんを表示したほうがいいか決めるのが良いのではないでしょうか。

投稿2019/02/18 22:45

light180

総合スコア161

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

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

ikt_erk122

2019/02/20 08:40

回答ありがとうございます。 さっそく取り掛かりたいと思います また何かあったら質問させてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問