0

私はRESTルートと混同しています:

ユーザーが登録できるユーザー登録フォームがあります。フォームビルダーとしてform_forを使用しています-

<%= form_for @user do |f| %>

私が達成したいこと:パスのようなものは、 (GET)users/signupではなく、ユーザーコントローラーとサインアップ(これはかなり明白です)アクションにつながります。users/newまた、同じメソッド( "users"(POST)の代わりに)にPOSTできるようにしたかったので、基本的に、POSTとGETの両方のサインアップアクションです。

また、「@ user」の代わりに使用する必要があるかどうかを知りたいと思いましたnew_users_path(したがって、次のようになります:

<%= form_for new_users_path do |f| %>

* form_for *内-を使用するnew_users_pathと、何らかの理由でフィールドの名前が取得されるため、name ="user[username] "ではなくname="/ users /new[username]"になります。

誰かがこれを手伝ってくれませんか?

前もって感謝します!

4

2 に答える 2

1

以下を使用して:

  match 'users/signup', via: [:post, :get]
  resources :users, except: [:new, :create]

rake routesコマンドは次のようになります。

users_signup POST|GET /users/signup(.:format)   users#signup
       users GET      /users(.:format)          users#index
   edit_user GET      /users/:id/edit(.:format) users#edit
        user GET      /users/:id(.:format)      users#show
             PUT      /users/:id(.:format)      users#update
             DELETE   /users/:id(.:format)      users#destroy

使用法:

<%= form_for User.new, url: users_signup_path do |f| %>

これがあなたの望むものであることを願っています。

于 2012-09-12T08:20:08.933 に答える
0

そのAPIを確認する必要があります:

form_for(record_or_name_or_array, *args, &proc)

最初のパラメーターはオブジェクト (.eg "record") である必要がありますが、"route" ではありません。

URLを受け入れたい場合は、チェックしてくださいform_tag

検索可能な APIをダウンロードしてください。

于 2012-09-12T08:01:43.717 に答える