【发布时间】:2014-05-20 14:42:35
【问题描述】:
我想在控制器中调用这个方法
def setplaylist
@stream.programmed_at = Time.now.to_i
end
从这一行来看
<%= button_to 'Reprogram', @stream, :method => :setplaylist, :remote => true %>
我收到 No routes match [POST] 错误。
编辑: 我的 routes.rb 文件
Rails.application.routes.draw do
get 'splashpage/splash'
root :to => 'splashpage#splash', :as =>'splash'
resources :streams do
resources :videos
end
EDIT 2 rake 路线
Prefix Verb URI Pattern Controller#Action
splashpage_splash GET /splashpage/splash(.:format) splashpage#splash
splash GET / splashpage#splash
stream_videos GET /streams/:stream_id/videos(.:format) videos#index {:member=>{:setplaylist=>:post}}
POST /streams/:stream_id/videos(.:format) videos#create {:member=>{:setplaylist=>:post}}
new_stream_video GET /streams/:stream_id/videos/new(.:format) videos#new {:member=>{:setplaylist=>:post}}
edit_stream_video GET /streams/:stream_id/videos/:id/edit(.:format) videos#edit {:member=>{:setplaylist=>:post}}
stream_video GET /streams/:stream_id/videos/:id(.:format) videos#show {:member=>{:setplaylist=>:post}}
PATCH /streams/:stream_id/videos/:id(.:format) videos#update {:member=>{:setplaylist=>:post}}
PUT /streams/:stream_id/videos/:id(.:format) videos#update {:member=>{:setplaylist=>:post}}
DELETE /streams/:stream_id/videos/:id(.:format) videos#destroy {:member=>{:setplaylist=>:post}}
streams GET /streams(.:format) streams#index {:member=>{:setplaylist=>:post}}
POST /streams(.:format) streams#create {:member=>{:setplaylist=>:post}}
new_stream GET /streams/new(.:format) streams#new {:member=>{:setplaylist=>:post}}
edit_stream GET /streams/:id/edit(.:format) streams#edit {:member=>{:setplaylist=>:post}}
stream GET /streams/:id(.:format) streams#show {:member=>{:setplaylist=>:post}}
PATCH /streams/:id(.:format) streams#update {:member=>{:setplaylist=>:post}}
PUT /streams/:id(.:format) streams#update {:member=>{:setplaylist=>:post}}
DELETE /streams/:id(.:format) streams#destroy {:member=>{:setplaylist=>:post}}
rake 路线 | grep 设置播放列表
stream_videos GET /streams/:stream_id/videos(.:format) videos#index {:member=>{:setplaylist=>:post}}
POST /streams/:stream_id/videos(.:format) videos#create {:member=>{:setplaylist=>:post}}
new_stream_video GET /streams/:stream_id/videos/new(.:format) videos#new {:member=>{:setplaylist=>:post}}
edit_stream_video GET /streams/:stream_id/videos/:id/edit(.:format) videos#edit {:member=>{:setplaylist=>:post}}
stream_video GET /streams/:stream_id/videos/:id(.:format) videos#show {:member=>{:setplaylist=>:post}}
PATCH /streams/:stream_id/videos/:id(.:format) videos#update {:member=>{:setplaylist=>:post}}
PUT /streams/:stream_id/videos/:id(.:format) videos#update {:member=>{:setplaylist=>:post}}
DELETE /streams/:stream_id/videos/:id(.:format) videos#destroy {:member=>{:setplaylist=>:post}}
streams GET /streams(.:format) streams#index {:member=>{:setplaylist=>:post}}
POST /streams(.:format) streams#create {:member=>{:setplaylist=>:post}}
new_stream GET /streams/new(.:format) streams#new {:member=>{:setplaylist=>:post}}
edit_stream GET /streams/:id/edit(.:format) streams#edit {:member=>{:setplaylist=>:post}}
stream GET /streams/:id(.:format) streams#show {:member=>{:setplaylist=>:post}}
PATCH /streams/:id(.:format) streams#update {:member=>{:setplaylist=>:post}}
PUT /streams/:id(.:format) streams#update {:member=>{:setplaylist=>:post}}
DELETE /streams/:id(.:format) streams#destroy {:member=>{:setplaylist=>:post}}
在进行 Max 的更改后,我收到一个无方法错误。未定义的方法 setplaylist_stream_path。
【问题讨论】:
-
发布您的
routes.rb代码 -
试试这个
<%= button_to 'Reprogram', :controller =>'your_controller_name',:action => 'setplaylist' :method => :get, :remote => true %> -
哎呀我错过了一个逗号(,)它应该是这样的
<%= button_to 'Reprogram', :controller =>'your_controller_name',:action => 'setplaylist',:method => :get, :remote => true %> -
没有路由匹配 {:action=>"setplaylist", :controller=>"streams_controller", :id=>"teststream", :method=>:post, :remote=>true}。我使用friendlyids所以id是一个字符串而不是一个整数
-
你能发布你的
rake routes output吗?
标签: ruby-on-rails ruby button view controller