0

Rails3.2では非常に奇妙な動作をします。

hamlページでform_tagを使用します:

= form_tag messages_path, :method => :get do

このフォームにはいくつかのチェックボックスが含まれており、このコードは正常に機能します。

しかし、私は得るのが好きではありません。

「get」を「post」に置き換えると、本当に奇妙なことが起こります。

コントロールは私の「create」メソッドに移動し、データベースにnilオブジェクトを作成してから、元のページに戻るようです(とにかく「create」メソッドに指示したことです)。

次に、チェックボックスがかなりめちゃくちゃになっています...

注:チェックボックスの内容をセッションに保存します。ダンノ、それが本当に重要なら。

「投稿」はデフォルトで「作成」するように見えますか?それを変更できますか?「Get」は正常に機能しますが、URLが台無しになります。

助言がありますか ???

4

1 に答える 1

2

はい、デフォルトでは、postはリクエストをコントローラーのcreateメソッドにマップします。

post requestを使用する場合は、config/routes.rbに以下のコードを追加します

resources :messages do
  collection do
    post 'stuff'
  end
end

メッセージコントローラで

def stuff
  #your stuff goes here
end

次に、フォームビルダーは

form_tag stuff_messages_path, :method => :post
于 2012-10-17T16:49:27.307 に答える