gpt4 book ai didi

ruby-on-rails - 尝试在 ruby​​ 中创建 pin 时如何修复 NoMethodError?

转载 作者:行者123 更新时间:2023-12-03 08:33:17 25 4
gpt4 key购买 nike

对不起,我可能太天真了,这是我第一次使用 StackOverflow,我正在尝试学习 ruby​​。我正在通过 onemonthrails.com 的类似于 pinterest 的教程制作应用程序。我正在尝试添加一个图钉,但我不断收到错误消息:

引脚中的 NoMethodError#new

显示/Users/jake/code/omrails/app/views/pins/_form.html.erb 其中第 5 行提出:

# 的未定义方法“描述”
提取的源代码(第 5 行附近):

我不知道什么都可以帮助您回答问题,所以当我运行以下命令时,我会发布我收到的所有文件(可能与问题相关):
$ rails 生成脚手架 Pins

迁移文件:

class CreatePins < ActiveRecord::Migration
def change
create_table :pins do |t|
t.string :description

t.timestamps
end
end
end

该模型:
class Pin < ActiveRecord::Base
attr_accessible :description
end

_form.html.erb:(这是它发现错误的地方)
<%= simple_form_for(@pin) do |f| %>
<%= f.error_notification %>

<div class="form-inputs">
<%= f.input :description %>
</div>

<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>

new.html.erb:(这是“模板结论的痕迹”)
<h1>New pin</h1>

<%= render 'form' %>

<%= link_to 'Back', pins_path %>

我不明白这个错误,因为我认为该方法是在 attr_accessible 下的模型中定义的:description

如果您能理解我刚才所说的任何内容,我将不胜感激。如果不是感谢您花时间查看它。

最佳答案

您需要运行迁移来创建 pins table 。

 rake db:migrate

如果它提示表存在,这意味着您在添加 description 之前运行了迁移。柱子。如果不先恢复迁移,则重新运行迁移将不起作用:
 rake db:migrate:redo

澄清你关于 attr_accessible :description 的观点- attr_accessible没有为您的模型定义属性。您的数据库表会这样做(通常根据您的迁移)。什么 attr_accessible确实是作为可批量分配属性的白名单。

关于ruby-on-rails - 尝试在 ruby​​ 中创建 pin 时如何修复 NoMethodError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17408701/

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