ruby-on-rails - 如何解决“未定义的局部变量或方法‘文章’#" 在 ruby on rails 中
问题描述
我是 ruby on rails web 开发的新手。现在我尝试使用 ruby on rails 创建简单的表单。
但提交表单后显示以下错误,
NameError in ArticlesController#create
undefined local variable or method `article` for #<ArticlesController:0x9d00548> Did you mean? article_url
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"vUOVlqSQTJMHGT11RhZKv4jfcKgEyxnHXCMiHSeaUI7ghsnoZ4vsjZ/QmM2d/MvLLV0YFJ1UIn61RTgJEcgVvA==",
"article"=>{"itle"=>"Text heading", "text"=>"Text subject"},
"commit"=>"Save Article"}
Response
Headers:
None
我的代码部分是,
新的.html.erb
<h1>New Article</h1>
<%= form_with scope: :article, url: articles_path, local: true do |form| %>
<p>
<%= form.label :itle %><br>
<%= form.text_field :itle %>
</p>
<p>
<%= form.label :text %><br>
<%= form.text_field :text %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
文章控制器
class ArticlesController < ApplicationController
def new
end
def create
@article = article.new(params[:article].inspect)
@article.save
redirect_to @article
end
end
路线
Rails.application.routes.draw do
get 'welcome/index'
resources :articles
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root 'welcome#index'
end
如果我使用以下行打印输入值,
render plain: params[:article].inspect
它显示以下消息,
<ActionController::Parameters {"title"=>"First Article!", "text"=>"This is my first article."} permitted: false>
但是我用article.new(params[:article].inspect)这条线是行不通的。
我检查了我的代码,但我不知道如何解决这个问题。
如果有人帮我找出我编码的错误
我通过使用此页面https://guides.rubyonrails.org/getting_started.html来实现我的代码
解决方案
从移动
@article = article.new(params[:article])
至
@article = Article.new(params[:article])
您需要使用该类来创建对象。还有,是的,article
不存在
推荐阅读
- python - 负香农熵
- python - Numpy总和搞砸了添加负数
- handlebars.js - 如何使用 bigcommerce 模板组件来处理车把 JS?
- webpack - TypeError:部署到 Vercel 时无法读取 null 的属性“哈希”
- selenium - 如何在 java selenium 中获取谷歌工作表数据?
- r - 有没有办法限制变量以控制多元逻辑回归?
- python - 尝试获取电报聊天 ID 时遇到问题
- sql - .net 数据提供者是否有不支持命名 SQL 参数的装饰器?
- gremlin - 如何在 Apache TinkerPop Gremlin 中使用分页?
- excel - 如何在数据透视图中格式化不可见的数据透视表