ruby-on-rails - 铁路编辑路线

标签 ruby-on-rails ruby

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

    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/

相关文章:

ruby - "shell out"或 "shelling out"是什么意思?

ruby-on-rails - 从 rake 任务运行两个 ruby​​ 脚本

ruby-on-rails - 什么是 rake db :test:prepare actually do?

ruby-on-rails - 在 macOS 上安装 rmagick 不起作用,未找到重复引用和引用

jquery - 激活Rails link_to ajax ,用jquery调用

ruby-on-rails - Rails 更新 4.1.0 后,next 方法 (Class.first) 不起作用

javascript - 在 Rails 中通过参数发送 base64 图像是一个好习惯吗?

ruby-on-rails - 我应该将 View 字符串放入 yaml 文件以便于测试吗?

ruby - Ruby 哈希的 "key"函数有多昂贵?

ruby-on-rails - 有条件的 rails 字段