gpt4 book ai didi

ruby - NoMethodError - `type' :String: 的未定义方法 "string"

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:12 26 4
gpt4 key购买 nike

有人读过 Daniel Kehoe 的“学习 Ruby on Rails”吗?如果没有,那么请跳过下一段,直接看堆栈。

我刚刚使用模型方法构建了“Rails Way”应用程序,其中包含“新建”和“创建”路线的联系页面。作者刚刚介绍了使用“Rails Way”进行验证有多么酷。但是,当我单击菜单中的联系人链接时,它会抛出一个我目前无法理解的错误。我在下面提供了错误的详细信息。您可以提供的任何见解都会非常有帮助。

有人在处理 ActiveRecord 时遇到以下错误吗?

错误:

NoMethodError - undefined method `type' for "string":String:

堆栈:

Started GET "/contacts/new" for ::1 at 2015-08-05 00:22:18 -0700
Processing by ContactsController#new as HTML
Rendered contacts/new.html.erb within layouts/application (1.7ms)
Completed 500 Internal Server Error in 5ms (ActiveRecord: 0.0ms)

NoMethodError - undefined method `type' for "string":String:
activerecord (4.2.2) lib/active_record/connection_adapters/column.rb:18:in `type'
activesupport (4.2.2) lib/active_support/core_ext/object/try.rb:77:in `public_send'
activesupport (4.2.2) lib/active_support/core_ext/object/try.rb:77:in `try!'
activesupport (4.2.2) lib/active_support/core_ext/object/try.rb:63:in `try'
simple_form (3.1.0) lib/simple_form/form_builder.rb:514:in `default_input_type'
simple_form (3.1.0) lib/simple_form/form_builder.rb:497:in `find_input'
simple_form (3.1.0) lib/simple_form/form_builder.rb:112:in `input'
app/views/contacts/new.html.erb:6:in `block in _app_views_contacts_new_html_erb___1021484279056782038_70328966650640'
actionview (4.2.2) lib/action_view/helpers/capture_helper.rb:38:in `block in capture'
actionview (4.2.2) lib/action_view/helpers/capture_helper.rb:200:in `with_output_buffer'
actionview (4.2.2) lib/action_view/helpers/capture_helper.rb:38:in `capture'
actionview (4.2.2) lib/action_view/helpers/form_helper.rb:444:in `form_for'
...

new.html.erb 的内容

<% content_for :title do %>联系方式<% end %>

联系方式

<%= simple_form_for @contact do |form| %> <%= form.error_notification %> <%= form.input :name, autofocus: true %> <%= form.input :email %> <%= form.input :content, as: :text %> < %= form.button :submit, '提交', class: '提交' %> <% end %>

最佳答案

在 contact.rb 文件中改变这个

#column :name, :string
#column :email, :string
#column :content, :string

将 4.2.2 中的以上 3 行替换为以下行

attr_accessor :name, :string
attr_accessor :email, :string
attr_accessor :content, :string

关于ruby - NoMethodError - `type' :String: 的未定义方法 "string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com