ユーザー オブジェクトの属性を更新する必要があるフォームがあります。
ここに私が要約した3つのステップがあります:
アクション 'new' は、操作するオブジェクトをフォームに提供する必要があります
フォームは、値を収集するオブジェクトを知る必要があります
フォームが送信されると、これらのパラメーターをユーザー オブジェクトを更新する関数に送信する必要があります。
これがすべてコーシャである場合、これを実現するために私が行ったことは次のとおりです.
「new」アクション内で、次のようにユーザー オブジェクトを提供しようとしました。
@current_user = current_user
次に、ビューでは、フォームは次のようになります。
<%= form_for (@current_user) do |f| %>
<%= f.label :target_bf_pct %>
<%= f.text_field :target_bf_pct %>
<%= f.label :activity_factor %>
<%= options_for_select([['Sedentary (Desk Job)', 1.2],
['Light Activity (1-3 day a week)', 1.35],
['Moderate Activity (3-5 days a week)', 1.55],
['Very Active ( 6-7 days a week)', 1.75],
['Extremely Active (Atheletic Endurance)', 1.95]])
%>
<%# f.submit "Post", class:"btn btn-large btn-primary" %>
<% end %>
この時点で発生しているエラーは次のとおりです。
undefined method `user_path' for #<#<Class:0x007fd943d00d08>:0x007fd944e5b6c0>
これは、新しいアクション内の @current_user インスタンスに対応するはずのフォーム @current_user オブジェクトを参照しています...
重要な注意点:
セッションコントローラーにdeviseを使用して、新しいユーザーを作成し、セッションを処理しています。
「activity_factor」のように選択されたときに表すはずの値をまだ割り当てていないため、フォームヘルパー options_for_select の使用が適切に使用されているとは思いません