/ / URL経由でパラメーターを渡す-ruby-on-rails

URL経由でパラメーターを渡す-ruby-on-rails

通常のWeb URLを使用してRailsアプリケーションにパラメーターを渡すにはどうすればよいですか?

たとえば、私が持っている場合..

http://0.0.0.0:3000/lists/create/list[name]=Paul&list[age]=39&list[tag]=misc

リストと呼ばれるコントローラーを作成しました。名前、年齢、タグを渡したいと思います。

私の例では合格しています。

名前=ポール 年齢= 39 タグ=その他

上記で貼り付けた私の例では、アイテムは作成されましたが、追加するアイテムに空のデータがあるため、フォーマットが正しくないことを示しています。

パラメータを正しく渡すために上記のURLをどのように構成するかを教えてもらえますか?

ありがとう ポール

回答:

回答№1の場合は3

デフォルトでは、RailsのRESTfulルーティングは create 経由のアクション GET (通常のURL)プロトコル。特定の例では、このルートをconfig / routes.rbファイルに追加する必要があります。

map.create_list "list/create", :controller => "lists", :action => "create", :conditions => { :method => :get }

これはルートを追加します create_list_path または create_list_url それは経由でアクセス可能です GET リンクなどの場合。リストを直接作成するために使用されるURLは次のとおりです。

http://0.0.0.0:3000/lists/create?list[name]=Paul&list[age]=39&list[tag]=misc

また、無効な認証トークンに関するエラーが発生した場合は、コントローラーに次の行を追加する必要がある場合があります。

skip_before_filter :verify_authenticity_token, :only => :create

より一般的なケースでは、ルートを同様に構成し、次のように形成します。

指定する必要があります :method => "get" あなたの form_tag.

これについては Ruby on Railsフォームヘルパー ガイド(「一般的な検索フォーム」を検索)。

始めるために必要な基本的なコードは

<%= form_tag(search_path, :method => "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>

生成する

<form action="/search" method="get">
<label for="q">Search for:</label>
<input id="q" name="q" type="text" />
<input name="commit" type="submit" value="Search" />
</form>

どの GETs URL: http://my.server/search?q={query input}&commit=Search.