Как решить "неопределенную локальную переменную или метод" article "для #"в рубине на рельсах - PullRequest
0 голосов
/ 28 мая 2019

Я новичок в ruby ​​on rails веб-разработке. Сейчас я пытаюсь создать простую форму, используя 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

Моя часть кода,

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) эта строка не работает.

Я проверяю свой код, но не знаю, как решить эту проблему.

Если кто-нибудь поможет мне узнать, какую ошибку я совершил, мой код

Я реализую свой код, используя эту страницу https://guides.rubyonrails.org/getting_started.html

1 Ответ

1 голос
/ 28 мая 2019

Переход от

@article = article.new(params[:article])

к

@article = Article.new(params[:article])

Вам необходимо использовать класс для создания объектов.Кроме того, да, article не существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...