-1

私の質問は、Rails の命名規則の難問に関するものです。私のアプリケーションには、サインアップ、サインイン、サインアウトの機能があります。

サインアップ ページでは、form_for(@user)ヘルパーを使用しました。

サインイン ページには、form_for(:session, url: sessions_path). しかし、routes.rb ファイルにはresources :sessions、サインイン ページの form_for ヘルパーの引数で述べたように、単数形の代わりに を含めました。

誰かができれば:

1.) この特定の form_for 問題を解決する

2.) More importantly point me in the direction where I can learn/read about Rails naming conventions, I would be highly indebted.
4

1 に答える 1

1
  1. @user が初期化されているに違いありませんUser.new-これは新しいユーザーです。サインアップするときに、新しいユーザーを作成して、form_for(@user) を「新しいユーザーのフォーム」に変換できるようにします。この場合、ActiveRecord User インスタンスに form_for を提供することに注意してください。これは、本来の使用方法です。
  2. ActiveRecord モデルのインスタンスではなくシンボルを form_for に指定すると、シンボルを使用してフォーム内の入力がネストされます。たとえば、<%= f.text :name %>フォームに入力すると、 が生成されます<input name="session[name]" type="text">。また、既存のユーザーがサインインするときに (ステップ 1 のように) 新しいユーザーを作成したくない場合は、既存のユーザーの新しいセッションを作成したいだけなので、sessions_path への投稿は非常に直感的に見えます。
  3. ターミナルにコマンドrake routesを入力すると、アプリケーションに設定されたすべての名前付きルートを取得できます。これにより、Rails コマンドが名前付きルートにどのように変換されるかがよくわかります。

詳細については、以下をお読みください。

Railsルーティングガイド

form_for ApiDock ドキュメント

于 2012-08-22T07:39:59.930 に答える