質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

4377閲覧

Form_tagのエラー「wrong number of arguments (3 for 0..2)」について

ronstail

総合スコア26

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2014/09/30 11:24

form_tagを使っているのですが、オプションの指定でエラーが発生し、
正解がわからないので質問いたします。

例えば、
以下のようなコードを実行すると正常に動くのですが、

lang

1<%= form_tag(search_path, {:method => :get} ) do %> 2 <%= text_field_tag :search, params[:search] %> 3<% end %>

以下のようにするとエラーが発生してしまいます。

lang

1<%= form_tag(search_path, {:method => :get}, {:class => 'aaaaa'}) do %> 2 <%= text_field_tag :search, params[:search] %> 3<% end %>

ただし、以下のようにするとこれは正常に動きます。

lang

1<%= form_tag(search_path, {:class => 'aaaaa'}) do %> 2 <%= text_field_tag :search, params[:search] %> 3<% end %>

form_tagで複数のオプションを指定する正しい方法をご教授いただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

とても参考になりました。
ご紹介いただきありがとうございます。
以下のようにすることで動作しました。

lang

1<%= form_tag( {:action =>'search', :class => 'aaaaa'} ,{:method => :get}) do %> 2 <%= text_field_tag :search, params[:search] %> 3<% end %>

投稿2014/10/04 07:46

ronstail

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

{:method => :get}, {:class => 'aaaaa'} と書けば、 2 つのパラメータになります。
{:method => :get, :class => 'aaaaa'} と書けば、1 つのパラメータになります。

例えば、 http://g08m11.hateblo.jp/entry/2013/12/14/161707 には
こんな記載例が載っています。

<%= form_tag(action: :search, method: :put, class: "form-horizontal seperator", role: "form") do %> ... <% end %>

投稿2014/09/30 15:11

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ronstail

2014/10/01 10:47

ご回答ありがとうございます。 ```lang-ruby <%= form_tag(action: :search, method: :get, class: "form-control", role: "form") do %> <%= text_field_tag :search, params[:search] %> <% end %> ``` このコードを試してみたところ、エラーにはなりませんでしたが、サブミット後のURLが以下のようになり、Postとして送信されてしまっています。 複雑なオプションを指定する場合はベタにHTMLで書いた方がいいのでしょうか。。 ```lang-<ここに言語を入力> http://localhost:3000/search?class=form-control&method=get&role=form ```
katoy

2014/10/01 22:20

実際に試していませんが、こんな記事もみつけました。 - http://d.hatena.ne.jp/iRSS/20060719/1153316665 > ... > <%= form_tag(:action=>"list", :method=>"get") %> > ... > こうかいていたら、postになってしまった。 > form_tagの引数が複数になるときは、注意です。 > ...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問