Rails编辑路线

时间:2014-03-17 05:54:01

标签: ruby-on-rails ruby

这个错误不止一次蔓延,我似乎无法指出它。 错误日志:

    undefined method `medium_path' for #<#<Class:0x0000010687a788>:0x00000101d62d90>
Extracted source (around line #3):

媒体控制器。

 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

edit.html.erb。

 <h1>Editing <%= @media.title %></h1>

<%= form_for(@media) do |f| %>
    <p>
        <%= f.label :title %>
    </p>

<% end %>

的routes.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

1 个答案:

答案 0 :(得分:4)

我相信您的form_for声明会产生错误。除了config/routes.rb中的内容之外,您还可能需要为update操作添加路由,因为form_for(@media)将会更新。

将以下内容添加到config/routes.rb

put "media/:id/update" => "media#update"

还要确保在update

中定义MediaController操作

另一种选择是在resources中使用config/routes.rb替代您拥有的所有media/...路线:

Mediastuff::Application.routes.draw do
  root "media#index" 
  resources :media
end

要查看可以使用的路径/网址助手,请从终端运行rake routes