【发布时间】:2016-08-21 16:53:35
【问题描述】:
我是 Ruby 和 Ruby on Rails 初学者,从 2 天前开始。 我第一次尝试构建一个基本应用程序,当我尝试使用 simple_forms gem 时出现此错误。
在向您展示代码之前,我想指定如果我删除 simple_forms 代码,它会起作用,它将我重定向到 /orders/new 页面并显示 HTML 页面。
这是我的错误: 订单中的 NoMethodError#new 显示 /home/ubuntu/workspace/app/views/orders/_form.html.erb 其中第 2 行提出: #
的未定义方法“amazonurl”我的代码:
routes.rb
Rails.application.routes.draw do
resources :orders
root 'orders#index'
end
orders_controller
class OrdersController < ApplicationController
def index
end
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
end
private
def order_params
params.require(:order).permit(:amazonurl, :dname, :daddress, :dphone)
end
end
迁移
class CreateOrders < ActiveRecord::Migration
def change
create_table :orders do |t|
t.string :amazonurl
t.text :dname
t.text :daddress
t.text :dphone
t.timestamps null: false
end
end
end
表单(_form.html.erb)
<%= simple_form_for @order do |f| %>
<%= f.input :amazonurl %>
<%= f.input :dname %>
<%= f.input :daddress %>
<%= f.input :dphone %>
<%= f.button :submit %>
<% end %>
还有我的 new.html.erb 文件
<h1>New Order</h1>
<%= render 'form' %>
非常感谢,希望我们能解决!
【问题讨论】:
-
愚蠢的问题 - 您是否进行了迁移?
-
感谢您的回答。是的,我做了:rake db:migrate。您认为可能是什么问题?
-
你能提供完整的堆栈跟踪伙伴吗?
-
您的代码看起来不错。我希望你已经完成了
rails g simple_form:install。从错误来看,gem 似乎无法理解在哪里寻找模型。如果您重新排序输入,您可以验证这一点。对于不同的属性,它会显示相同的错误。 -
试试 rake db:drop db:migrate
标签: ruby-on-rails ruby ruby-on-rails-3