默認情況下,導軌的REST路由禁止通過GET
(常規URL)協議create
行動。爲了您的具體的例子,你需要這個路由添加到你的config/routes.rb文件文件:
map.create_list 'list/create', :controller => 'lists', :action => 'create', :conditions => { :method => :get }
這增加了一個路線create_list_path
或create_list_url
是通過GET
的鏈接進行訪問,等用於創建網址列表中直接將是:
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
對於更一般的情況下,可以配置同樣的路線和形式如下:
你需要在你的form_tag
指定:method => 'get'
。
這在Ruby on Rails Form Helpers指南(搜索「通用搜索表單」)中進行了討論。
給出的基本代碼應該讓你開始是
<%= 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上的網址:http://my.server/search?q={query input}&commit=Search
。
你是怎麼發佈到0.0.0.0? – 2010-11-05 22:29:08
嗯,這是我被告知連接到當我運行腳本/服務器時,默認地址,我也嘗試localhost:3000但仍然得到同樣的問題,這一切都在當地測試 – Azalar 2010-11-05 22:30:45