我是Ruby和Ruby on Rails的初学者,2天前开始。 我第一次尝试构建一个基本应用程序,当我尝试使用simple_forms gem时出现此错误。
在我向您展示代码之前,我想指定如果我删除simple_forms代码,它会起作用,它会将我重定向到/ orders / new页面并显示HTML页面。
这是我的错误: Orders#new中的 NoMethodError 显示/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' %>
非常感谢,我希望我们明白这一点!
答案 0 :(得分:0)
首先尝试sudo gem install simple_form
,然后rails g simple_form:install
。希望它有所帮助