2016-08-15 8 views
0

Railsの学習に時間を費やしていましたが、今はデモプロジェクトを進めています。ユーザーがアクションを選択した後に現在の日付と時刻を取得する方法

ケアリクエスト_formの即時ケアが必要かどうかをユーザーが選択するようにします。ユーザが「いいえ」を選択した場合、ユーザは次の2つの隠しコード行から時刻と日付を選択し、start_timestart_dateを保存するように求められます。ユーザーが「はい」を選択した場合、ユーザーがフォームの「送信」ボタンをクリックした後に、start_timeフィールドとstart_dateフィールドの現在の日付と時刻を渡したいとします。

私はif/else声明、隠された機能、およびTime.now/DateTime.nowメソッドを使用します知っているが、私はそれらを実装する方法が混乱しています。

<div class="row"> 
    <div class="form-group"> 
     <label class="control-label">Is immediate care needed?</label> 
     <select class="form-control edit"> 
     <option>Yes</option> 
     <option>No</option> 
     </select> 
    </div> 
    </div> 


<div class="row"> 
    <div class="form-group"> 
    <label>Choose your start date.</label> 
    <%= f.text_field :start_day, placeholder: "MM/DD/YY", class: "form-control" %> 
    </div> 
</div> 


<div class="row"> 
    <div class="form-group"> 
    <label>Choose your start time.</label> 
    <%= f.text_field :start_time, placeholder: "08:00 AM", class: " form-control" %> 
    </div> 
</div> 

私はStack Overflowを見ましたが、これに似たものは見つかりませんでした。

+0

私はあなたが求めていることを完全にはわかっていませんが、もしそうであれば、「オプション」コンテンツを含むdivを非表示にして、選択の価値に基づく可視性? – jaydel

+0

はい、まさに私がやろうとしていることですが、ユーザーが即時ケアのために「はい」を選択した場合に限り、start_timeフィールドとstart_dateフィールドの現在の日付と時刻を取得したいと考えています。 @jaydel –

答えて

0

まず、あなたはオプションのために、あなたの「即時ケア」選択フィールド、および供給値に名前を付ける必要があります。

<select class="form-control edit" name="immediate_care">  
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 

はその後、あなたが選択した値をチェックし、値があれば、現在の日付&時刻の値を設定する必要があります「はい」(コントローラ内部多分before_filter)です:

if params[:immediate_care] == 'yes' 
    current_time = Time.now 
    params[:start_time] = current_time.strftime '%l:%m %p' 
    params[:start_day] = current_time.strftime '%d/%m/%y' 
end 

あなたのコードの詳細を提供しなかったので、それは、簡単な例ですが、覚えておいてください。

+0

私は作品に別の答えがありましたが、これは正しいものだと思います。ここで重要な点の1つは、ビジネスロジックが所属する場所にあることです。ビューにはありません。パラメータ管理はコントローラの義務です。 – jaydel

+0

それはコントローラにパラメタを送るつもりはない...私は 'select_tag' - > http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tagを使用しなければならない – liborza

+1

' select_tag'を使うことは単にフォームをレンダリングするヘルパーを使うことです。それはコントローラにデータを送信することとは関係ありません:) – siemakuba

関連する問題