Ruby on rails 未定义的方法'to#u key';对于#<;ActiveRecord::关系[]>;你是说?设置为

Ruby on rails 未定义的方法'to#u key';对于#<;ActiveRecord::关系[]>;你是说?设置为,ruby-on-rails,Ruby On Rails,这是我的表格 <%= form_for @customer do |f| %> <ul> <li><%= f.text_field :NameAndFamilyName,class:'1', placeholder:'نام و نام خانوادگی' %></li> <li><input class="1" placeholder="نام و نام خ

这是我的表格

      <%= form_for @customer do |f| %>
      <ul>
        <li><%= f.text_field  :NameAndFamilyName,class:'1', placeholder:'نام و نام خانوادگی' %></li>
        <li><input class="1" placeholder="نام و نام خانوادگی"></li>
        <li><input class="1" placeholder="تلفن همراه"></li>
        <li><input class="1" placeholder="آدرس ایمیل"></li>
        <li><input placeholder="موضوع پیام"></li>
        <li><textarea placeholder="متن پیام"></textarea></li>
        <li>
          <button>ارسال پیام</button>
        </li>
      </ul>
      <% end %>

  • ارسال پیام
这是我的控制器

    class CustomerController < ApplicationController
  def index
        @customer = Customer.all

    end

    def new
        @customer = Customer.new
    end

    def create
        @customer = Customer.new(customer_params)

        if @customer.save
            redirect_to @customer
        else
            render 'customer/index'

        end

    end
end
class CustomerController
这是我的迁移:

     class CreateCustomers < ActiveRecord::Migration[5.2]
       def change
        create_table :customers do |t|
          t.string  :NameAndFamilyName
          t.integer :Phone
          t.string  :Email
          t.string  :MessageSubject
          t.text    :Message

          t.timestamps
        end
      end
    end
class-CreateCustomers
如果代码没有运行,我应该怎么做

我想创建表单,但这个错误表明一切对我来说都是正常的,但它没有运行。我有一个错误:

undefined method `to_key' for #<ActiveRecord::Relation []>
  Did you mean? to_set to_ary
未定义的方法“to_key”#
你是说?设置为

我假设您在索引操作中有此错误

@customer = Customer.all
它返回的不是一个客户,而是客户列表。因此,我建议将其改为:

def index
  @customers = Customer.all
  @customer = Customer.new
end

没有控制器,迁移是两次。您可以查看。按照惯例,变量的名称应该是
name\u和\u family\u name
,而不是
name和familyName
@Sebastian Palma i editthat@jvillian我不知道你说的“它不工作”是什么意思。我没有特别推荐任何东西。我刚刚注意到,在迁移过程中,变量命名是非常规的。(此外,您的控制器代码仍然缺失。)