私はプログラミングがまったく初めてで、問題を抱えています。約 10 日前、Richard Schneeman が主催する ureddit.com で UT-Rails コースを開始しました。これまでのところ順調に進んでいますが、私は 5 週目で問題を抱えています。理解することがたくさんあったので、適切な用語を使用していない場合は、申し訳ありません.
https://github.com/zkay/move_logic_to_controllersは、私が現在フォローしているチュートリアルです。
私はステップ 2 までです。 のテキストをapp/views/products/new.html.erb
次のように置き換えました。
<%= form_for(@product) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :price %><br />
<%= f.text_field :price %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
ただし、チュートリアルに従って新しい製品を追加しようとすると、返される拒否は次のとおりです。
NoMethodError in Products#create
Showing C:/Sites/move_logic_to_controllers/app/views/products/create.html.erb where line #3 raised:
undefined method `name' for nil:NilClass
Extracted source (around line #3):
1: <h2>Product Created Successfully<h2>
2:
3: <%= @product.name %> added to the website, it costs: $<%= @product.price %>
Rails.root: C:/Sites/move_logic_to_controllers
を削除してページ.name
を.price
呼び出すと、ページは機能しますが、送信したデータは表示されません。
私はapp/controllers/product_controller.rb
次のものを持っています:
class ProductsController < ApplicationController
def index
@products = Product.includes(:user).all
end
def new
@product = Product.new
end
respond_to do |format|
if @product.save
format.html { render :action => "create" }
format.json { render :json => @product }
else
format.html { render :action => "new" }
format.json { render :json => @product.errors, :status => :unprocessable_entity }
end
end
end
長くなってしまい申し訳ありません。助けていただければ幸いです。