roy*_*hri 24 ruby-on-rails ruby-on-rails-3
puts "I am learning Rails, building a simple forum application."
puts "I am pretty satisfied to where I got so far but routes... "
puts "...still figuring them out."
puts "Been 2 days trying all sorts of things."
puts "This is where I am now, and something is not working as expected."
puts "Any help/pointers would be appreciated! :)"
Run Code Online (Sandbox Code Playgroud)
puts "I want my forum's create path to be '/helpcenter' and not '/helpcenter/cat'."
puts "When I access the form to create a new forum and I hit submit, "
puts "the form post to '/helpcenter' correctly (firebuged)"
puts "but I get the index, not the create!"
puts "I even put debugger in my create action but it is not being called."
Run Code Online (Sandbox Code Playgroud)
scope "/helpcenter" do
resources :cat, :controller => "forums", :as => :forums do
resources :topics , :controller => "forum_topics", :as => :topics
resources :posts, :controller => "forum_posts", :as => :posts
end
end
match "/helpcenter" => "forums#index", :as => :forums
match "/helpcenter" => "forums#create", :via => :post, :as => :create_forum
Run Code Online (Sandbox Code Playgroud)
我希望这个问题与我创建路线的方式有关.我尝试了很多不同的东西.
<%= form_for(@forum) do |f| %>
....
<% end %>
Run Code Online (Sandbox Code Playgroud)
我正在使用标准的form_for帮助器.
$ CONTROLLER=forums rake routes
delete_forum GET /helpcenter/cat/:id/delete(.:format) forums#delete
forums GET /helpcenter/cat(.:format) forums#index
POST /helpcenter/cat(.:format) forums#create
new_forum GET /helpcenter/cat/new(.:format) forums#new
edit_forum GET /helpcenter/cat/:id/edit(.:format) forums#edit
forum GET /helpcenter/cat/:id(.:format) forums#show
PUT /helpcenter/cat/:id(.:format) forums#update
DELETE /helpcenter/cat/:id(.:format) forums#destroy
forums /helpcenter(.:format) forums#index
create_forum POST /helpcenter(.:format) forums#create
Run Code Online (Sandbox Code Playgroud)
我们清楚地看到POST/helpcenter的路由绑定到论坛控制器的创建操作.
Started POST "/helpcenter" for 127.0.0.1 at 2012-07-02 12:25:00 -0400
Processing by ForumsController#index as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"d5iVKCh234234=", "forum"=>{"name"=>"", "description"=>""}, "commit"=>"Save Changes"}
Run Code Online (Sandbox Code Playgroud)
日志清楚地显示我正在/ helpcenter上执行POST但是它会激活索引操作而不是创建操作!
puts "Thanks!"
Run Code Online (Sandbox Code Playgroud)
Ste*_*fan 31
我认为请求与您的第一个forums路由匹配,因为您没有指定HTTP方法.这应该工作:
match "/helpcenter" => "forums#index", :via => :get, :as => :forums
match "/helpcenter" => "forums#create", :via => :post, :as => :create_forum
Run Code Online (Sandbox Code Playgroud)
或速记版本:
get "/helpcenter" => "forums#index", :as => :forums
post "/helpcenter" => "forums#create", :as => :create_forum
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29149 次 |
| 最近记录: |