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

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

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

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

Q&A

解決済

2回答

2336閲覧

Railsのストロングパラメータを利用した上で、サーバ側でキーと値を追加したい

bcckurenai

総合スコア11

Ruby on Rails

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

0グッド

0クリップ

投稿2017/01/24 14:36

Railsのストロングパラメータで、クライアントからPOSTされた値をチェックし、
かつサーバ側でparamsに指定のキーと値を入れたいと思っています

現在下記のようなコードになっており、
例えばですが、ここにクライアント側で改ざんされたくないdate_timeという要素を入れたいと思っておりますが、上手くいかず悩んでおります。

ruby

1def create 2 @user = User.create(permit_params) 3end 4 5private 6 7def permit_params 8 params.permit(:name, :address) 9end

ご教示いただければ幸いです。

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

created_atとかupdated_atなら同名のcolumnをDBに作ればrailsが全て処理してくれます。

まあそういう意味じゃないでしょう
真面目に答えますと
とりあえずrailsの流儀に従ってuserモデルにこういう風に追記すればいいかと

Ruby

1Class User<ActiveRecode::Base 2before_create :hoge 3 4 def hoge 5 now=lambda{Time.now} 6 self.date_time=now.call 7 end 8end

これでcreate時のみ現在の日付が入ります、ユーザーは介入できません。
before_createをbefore_updateとかbefore_saveとかにすると
好きなタイミングでレコードに色々できます。
間違ってもcontrollerに書いてbcckurenai様が
railsを脱線しませんように

投稿2017/01/25 04:28

moke

総合スコア2241

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

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

bcckurenai

2017/01/26 07:15

ありがとうございます、 このlambdaはなぜ使用しているのでしょう? self.dateにTime.nowではダメなのでしょうか
moke

2017/01/26 08:57

Time.nowだとclassが初期化された時間が入ってしまうかもだからです。 Rails自体も進化してるので、Time.nowで問題ないかもしれませんが
bcckurenai

2017/01/27 08:20

なるほど、それをlambdaで阻止しているのですね。 するに越したことはなさそうですが、興味があるのでいろいろ検証してみます。 お忙しいところありがとうございました!!
guest

0

御助言により無事解決いたしました。
危うくコントローラでどうにかしようと思っておりました…。
ソースコードまで見せていただきありがたいです。
ご教示いただきありがとうございます!

投稿2017/01/25 09:39

bcckurenai

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問