我正在研究一個小的Rails 4.2應用程序來修改2個Rails引擎中的幾個db表中的記錄。一個rails應用程序是爲此目的而創建的。沒有型號只有一個控制器user_menus
。form_tag的路徑不正確
class UserMenusController < ApplicationController
def home
end
def doper
#update db records
end
home.html.erb
是一個窗體,輸入一些params更新。
<%= form_tag(:controller => 'user_menus', :action => 'doper', :method => 'get') do %>
<div class="form-inputs">
<%= label_tag(:db_name, "Release") %>
<%= select_tag(:db_name, options_for_select([['',''],['Engine Config', 'engine_config'], ['User Access', 'user_access'], ['Search Stats', 'search_stats']])) %>
<%= submit_tag 'Submit' %>
</div>
<% end %>
end
在routes.rb
,有定義:
get '/handler', :to => "user_menus#doper"
root :to => "user_menus#home"
的問題是,我有時間難以做出正確的路徑爲form_tag
。錯誤是:
No route matches {:action=>"doper", :controller=>"user_menus", :method=>"get"}
以下<%= form_tag('/handler') do %>
不工作,以及:
No route matches [POST] "/handler"
在rake routes
,對於/handler
的定義。我在這裏錯過了什麼?
這是一個請求'doper'的視圖模板。改成'method::post'並且錯誤是一樣的(缺少'doper'模板) – user938363
那麼,你的路線必須與你在表格中使用的一致。確保他們這樣做。而且,「doper」動作必須渲染一些東西。解決這個問題。 –
在routes.rb中聲明一個用於更新記錄集合(沒有數據模型)的路由的正確方法是什麼?我試過'post/handler,來:'user_menus#doper'或'patch。在doper結尾處,它會重定向。全部數據庫更新應該在'doper'內執行。 – user938363