我是Rails Web开发领域的红宝石新手。现在,我尝试在Rails上使用ruby创建简单的表单。
但是提交表单后,它显示以下错误,
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
我的代码部分是
new.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)这行不起作用。
我检查了我的代码,但不知道如何解决此问题。
如果有人帮助我找到我做编码的错误
实现代码答案 0 :(得分:1)
移至
@article = article.new(params[:article])
到
@article = Article.new(params[:article])
您需要使用该类来创建对象。另外,是的,article
不存在