0

index.html.erb ビューに次のフォーム フィールドがあります。

 <%= form_tag("/calls/call", :method => "post") do %>
  <br />
  <%= text_field_tag(:call_to, "Number to call") %>
  <br />
  <%= text_field_tag(:call_from, "Number to call from") %>
  <br />
  <%= submit_tag("Dial") %></a>
  <br />
<% end %>

モデルの検証を使用せずに (モデルがないため)、10 桁の米国の電話番号のみを許可するようにフィールドを制約したいと考えています。

これを行うには多くの方法があると思いますが、最も簡単に実装できる方法は何だと思いますか?

「active_attr」ジェムを使用してみましたが、うまくいきませんでした。「active_attr」を使用して、Call というモデルを作成しました。モデルは次のようになります。

class Call

include ActiveAttr::Model

  attribute :call_to
  attribute :call_from

  # attr_accessible :call_to, :call_from

  validates_presence_of :call_to
  validates_presence_of :call_from
end

私のコントローラーは次のようになります。

class CallsController < ApplicationController

  def call

    call_to = params["call_to"]

    call_from = params["call_from"]

    call_to.to_i
    call_from.to_i

    puts call_to
    puts call_from

  end 

end

コントローラーで Call クラスのインスタンスをインスタンス化するか、それらの行に沿って何かをインスタンス化する必要がありますか?

@call = Call.new

前もって感謝します!

4

1 に答える 1

0

クライアント側のオプションの 1 つは、HTML5 type=tel 入力を使用することです。ここにいくつかのドキュメントへのリンクがあります。ただし、サーバー側の検証が必要になる場合があります。

于 2012-11-06T19:44:53.627 に答える