这个错误不止一次出现,我似乎无法指出它。 错误日志:
undefined method `medium_path' for #<#<Class:0x0000010687a788>:0x00000101d62d90>
Extracted source (around line #3):
媒体 Controller 。
class MediaController < ApplicationController
def index
@medias = Media.all
end
def show
@media = Media.find(params[:id])
end
def edit
@media = Media.find(params[:id])
end
end
编辑.html.erb。
<h1>Editing <%= @media.title %></h1>
<%= form_for(@media) do |f| %>
<p>
<%= f.label :title %>
</p>
<% end %>
路线.rb
Mediastuff::Application.routes.draw do
root "media#index"
get "media" => "media#index"
get "media/:id" => "media#show", as: "show_media"
get "media/:id/edit" => "media#edit", as: "edit_media"
end
最佳答案
我相信该错误是由您的 form_for
声明生成的。除了 config/routes.rb
中已有的内容之外,您可能还需要为 update
操作添加一条路由,如 form_for(@media)
将进行更新。
将以下内容添加到您的config/routes.rb
中:
put "media/:id/update" => "media#update"
还要确保在 MediaController
中定义 update
操作。
另一种选择是使用 config/routes.rb
中的resources
来替换您的所有 media/...
路由有:
Mediastuff::Application.routes.draw do
root "media#index"
resources :media
end
要查看可以使用哪些路径/url 帮助程序,请从终端运行 rake paths
。
关于ruby-on-rails - 铁路编辑路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447811/