2

Railsに次のようなHTMLフォームがあります

<form name="input">
  Title: <input type="text" name="title"> 
  <input type="button" value="Submit">
</form> 

必須フィールドにしたいtitle(つまり、ユーザーが空白のままにできない) ユーザーが入力したことを確認するにはどうすればよいですか? クライアント側で行うべきですか、それともサーバー側で行うべきですか? クライアント側で行うと、ユーザーが入力しなかった場合にサーバーへの通信が節約されると思います。

4

4 に答える 4

2

両方を実行できますが、少なくともサーバー上で実行する必要があります。どのクライアントも、クライアント側の検証を簡単に回避できることに注意してください。これにより、コードが破損する可能性があります。

以下を使用して、モデルで簡単に実行できます。

validates_presence_of :title

クライアントには、これを行うさまざまな方法があります。おそらく最も単純なのはrequired、input タグで html5 属性を使用することです。また、この Rails プラグインを使用して、サーバー側の検証に基づいてクライアント側の検証を自動的に生成できるvalidatiousなどの JavaScript ライブラリを使用することもできます。

于 2012-11-11T23:15:18.460 に答える
0

クライアント側とサーバー側で検証を行います。

クライアント側の検証は安全ではなく、無効にすることができます..

サーバー側の検証を実行する必要があり、バイパスできません

于 2012-11-12T00:10:23.117 に答える
0

本当に安全を確保したい場合は、とにかくサーバー上で行う必要があります。クライアント側の検証は、利便性のためだけのものです。

于 2012-11-11T23:17:06.060 に答える
0

ユーザーにとってより便利な (ユーザー エクスペリエンスが向上する) ため、クライアントで実行する必要があります。

また、クライアント側の検証が失敗した場合 (JavaScript がオフになっている、クライアント側のコードにバグがある、サポートされていないブラウザー、サーバーにゴミを送信しようとしている悪意のあるクラッカーなどの場合)、サーバーで実行します。 )。

于 2012-11-11T23:19:17.163 に答える