2

現在、Rails の「Devise」プラグインを使用してログイン/認証を処理しています。ログインフォームを処理するために非常に基本的なform_forタグを使用しています。コードは次のとおりです。

<div class="well-outer splash-signin-block">
  <div class="well-inner">
    <h2>Sign in</h2>
    <div>
      <%= form_for(resource, as: resource_name, url: user_session_path, html: {
        class: "form-inline"
      }) do |f| %>
        <p><%= f.text_field :email, placeholder: "Email", autofocus: true %></p>
        <p><%= f.password_field :password, placeholder: "Password" %></p>
        <p>
          <%= f.submit 'Sign in', class:"btn btn-primary btn-large" %>
          <%= f.check_box :remember_me, class: "checkbox" %>
          <%= f.label :remember_me %>
        </p>
      <% end %>
    </div>
  </div>
</div>

ただし、その「Remember me」チェックボックスをボタンに変更したいと思います。ユーザー エクスペリエンスは、[サインイン] (既定のアクション) をクリックするか、[記憶する] をクリックして永続的にサインインできるようにすることです。

舞台裏では、resource[remember_me]プロパティを「1」に設定する隠しフィールドを使用することでこれが機能すると思います。ただし、レールの初心者として、これをコーディングする方法がわかりません。いくつかのJavaScriptが必要になると思いますが、それは問題ありませんが、グーグルはAJAX-yのものしか見つけていないので、それは必要ないと思います. 必要なら遠慮はしませんが。

4

1 に答える 1

2

何らかの ID を持つボタンを作成し、JavaScript を使用してそのボタンのクリック イベントにバインドします。ボタンがクリックされたときに、隠しフィールドの値を変更したい。jQuery を使用している場合は、次のようになります。

   $('#id_of_button').click(function() {
     $('#id_of_hidden_field').val("true");
   });

次に、通常どおりコントローラーでその値を確認します。

jQuery を使用していない場合、それ以上の作業は必要ありません。頭の中でわからないだけです。ところで、このコードは、assets/javascript フォルダーの .js ファイルに配置する必要があります。

于 2012-06-28T19:51:01.017 に答える