Ruby on rails 3.2 产品Vs开发:路由问题

Ruby on rails 3.2 产品Vs开发:路由问题,ruby-on-rails-3.2,Ruby On Rails 3.2,我的应用程序从dev(Rails 3.2,Ruby 1.8.7,Webrick)到prod(Rails 3.2,Ruby 1.8.7,Passenger)出现问题。我现在有两个问题,我没有任何解决的乐趣。一个是关于我的路线: Started PUT "/clubs/myclub" ActionController::RoutingError (No route matches [PUT] "/myclub"): actionpack (3.2.2) lib/action_dispatch/m

我的应用程序从dev(Rails 3.2,Ruby 1.8.7,Webrick)到prod(Rails 3.2,Ruby 1.8.7,Passenger)出现问题。我现在有两个问题,我没有任何解决的乐趣。一个是关于我的路线:

Started PUT "/clubs/myclub" 

ActionController::RoutingError (No route matches [PUT] "/myclub"):
actionpack (3.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.2) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.2) lib/rails/rack/logger.rb:26:in `call_app'
railties (3.2.2) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.2) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.2) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.1) lib/rack/lock.rb:15:in `call'
actionpack (3.2.2) lib/action_dispatch/middleware/static.rb:61:in `call'
rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
rack-cache (1.2) lib/rack/cache/context.rb:143:in `pass'
rack-cache (1.2) lib/rack/cache/context.rb:155:in `invalidate'
rack-cache (1.2) lib/rack/cache/context.rb:71:in `call!'
rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
railties (3.2.2) lib/rails/engine.rb:479:in `call'
railties (3.2.2) lib/rails/application.rb:220:in `call'
railties (3.2.2) lib/rails/railtie/configurable.rb:30:in `send'
railties (3.2.2) lib/rails/railtie/configurable.rb:30:in `method_missing'
passenger (3.0.18) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
passenger (3.0.18) lib/phusion_passenger/abstract_request_handler.rb:516:in   
执行以下命令,我看到路由在那里:

[~/prod/current]# RAILS_ENV=production bundle exec rake routes | grep clubs
               clubs GET    /clubs(.:format)                          clubs#index
                     POST   /clubs(.:format)                          clubs#create
            new_club GET    /clubs/new(.:format)                      clubs#new
           edit_club GET    /clubs/:id/edit(.:format)                 clubs#edit
                club GET    /clubs/:id(.:format)                      clubs#show
                     PUT    /clubs/:id(.:format)                      clubs#update
                     DELETE /clubs/:id(.:format)                      clubs#destroy
当我在DEV设置中比较路由时,我没有看到任何差异

我得到的第二个问题是:

NoMethodError (undefined method `pageType=' for #<StaticPage:0x2b228afb8df8>):
  app/controllers/static_pages_controller.rb:34:in `showbyType'
  app/controllers/static_pages_controller.rb:22:in `show'
最后一行是34号。我检查了我的模型的StaticPage及其声明

 attr_accessible  :title, :content ,:pageType
我在dev中没有看到任何这些问题,就在我在prod中的时候。这些错误给我的印象就像我应该在dev中看到的那样,但我没有任何问题

如果有人能给我指出正确的方向,我将不胜感激

---更新

只是更新一下。我改变了作业的方式。我创建了一个方法来专门分配页面类型。看来是这样

@static_page.set_page_type( params[:pageType])
Rails不再抱怨,但是当我点击视图时,它爆炸了

ActionView::Template::Error (undefined method `pageType' for    #<StaticPage:0x2ba1008d50f0>):
5:   <%= f.inputs do %>
6:     <%= f.input :title %>
7:     <%= f.input :content %>
8:     <%= f.input :pageType , :as => :hidden %>
9: 
10:   <% end %>
ActionView::Template::Error(未定义#的“pageType”方法):
5:   
6:     
7:     
8::隐藏%>
9: 
10:   

这让人相信,我不知何故失去了同步。数据库中存在“pageType”。它存在于我的模型类中,但rails认为它不存在。你知道我应该去哪里看或者怎么解决吗?

请。“有趣的是,pageType不是方法,它是一个变量。”,实际上,它是一个方法
x.what=3
试图调用
x
上的
what=
方法。我相信我显示了我自己的无知。所以看起来我必须定义自己的初始化。类似于
def initialize(pageType)
@pageType=pageType
这样可以为我完成分配。奇怪的是,我没有在开发中看到这些问题。我没有足够的时间真正投入到开发中,一周1-2个小时,但我宁愿立即发现这些错误,而不是认为它可以工作,然后尝试在我的主机提供商上部署,并找出我几周前做过的事情,然后就坏了。谢谢你的指点,米格。我相信我显示了我自己的无知。所以看起来我必须定义自己的初始化。类似于
def initialize(pageType)
@pageType=pageType
这样可以为我完成分配。奇怪的是,我没有在开发中看到这些问题。我没有足够的时间真正投入到开发中,一周1-2个小时,但我宁愿立即发现这些错误,而不是认为它可以工作,然后尝试在我的主机提供商上部署,并发现我几周前做的事情已经坏了。谢谢你的指点,米加。(上次评论超时,因此重复)回答我自己的问题。这是一个案例敏感性问题。在开发模式下,它从不抱怨该列被称为“pageType”,当我转到使用postgres的prod时,它根本找不到“pageType”列。当我将应用程序中的所有内容重命名为“pagetype”时,就不再抱怨了。
ActionView::Template::Error (undefined method `pageType' for    #<StaticPage:0x2ba1008d50f0>):
5:   <%= f.inputs do %>
6:     <%= f.input :title %>
7:     <%= f.input :content %>
8:     <%= f.input :pageType , :as => :hidden %>
9: 
10:   <% end %>