通常の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>
どの GET
s URL: http://my.server/search?q={query input}&commit=Search
.