【问题标题】:Getting "undefined method `myobjects_path'" when trying to render my Rails form尝试呈现我的 Rails 表单时获取“未定义的方法 `myobjects_path'”
【发布时间】:2016-05-19 21:13:08
【问题描述】:

我使用的是 Rails 4.2.3。我无法让我的表单呈现。当我访问“http://localhost:3000/users”页面时,在“”行上收到错误“# 的未定义方法 `myobjects_path'”。下面的代码来自我的“app/views/users/_add.html.erb”文件……

<%= form_for @myobject do |f| %>
  <% if @myobject.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@myobject.errors.count, "error") %> prohibited this hack from being saved:</h2>

      <ul>

这是我的“app/controllers/users_controller.rb”中访问此页面的方法……

class UsersController < ApplicationController
  def index
    @myobject = Myobject.new
  end
end

我需要做什么才能让我的表单呈现?

【问题讨论】:

  • 你的config/routes.rb 中有resources :useres

标签: ruby-on-rails forms ruby-on-rails-4


【解决方案1】:

当表单中的对象(本例中为 @myobject)是 new_record 并且没有 id 时,会发生这种情况。表单会调用path方法,通常是打算去“/myobjects”作为表单源。如果不是新记录,则会转到详细信息路径 (/myobjects/:id)。

在这种情况下,没有方法myobjects_path,因为您可能还没有在任何地方创建该方法。在路线中创建很容易。只要确保你有一个resources :myobjects 并且它不排除创建操作

【讨论】:

    【解决方案2】:

    在控制器中添加方法

    def new
       @myobject = Myobject.new
    end
    
    def create
    
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多