我嘗試製作一個new
-action,它給了用戶一個表單和一個create
-action來處理它失敗並顯示錯誤消息`。控制器/操作未找到,但實際存在?
檢視:應用/視圖/工作室/ new.html.erb:
<%= form_for @studio, url: {action: 'create'} do |f| %>
<%= f.text_field :name %>
<%= f.submit 'Create' %>
<% end %>
控制器:應用程序/控制器/ studio_controller.rb:
def new
@studio = Studio.new
respond_to do |format|
format.html
format.json { render json: @studio }
end
end
def create
# TODO
end
路線:的config/routes.rb中
get 'studios/new' => 'studios#new', :as => 'new_studio'
在試圖訪問http://localhost:3000/studios/new
,我提出與錯誤
No route matches {:action=>"create", :controller=>"studios"}
正如你所看到的,create
-action出現在studios
- 控制器。爲什麼失敗?
真的,控制器本身是不知道自己的路線?在PHP Symphony中,您可以引用操作而無需在路由中聲明它們。這在Rails中不可行嗎? – krystah