上NameError初期化されていない一定の私は、トレーディングカードのコレクションを表すというモデル "キューブ、" 持っている:あなたのようのRails:データベースの関係
アプリ/モデル/ cube.rb
class Cube < ApplicationRecord
has_many :cubecards
validates :name, length: { in: 3..30 }
end
を見ることができ、このモデルはcube_cardsとにhas_many関係を持っています
アプリ/モデル/ cube_card.rb
class CubeCard < ApplicationRecord
belongs_to :cube
end
この関係を作る助けをthis rails guideに従いながら、コードの参照このフォームのスタイル:テストのため
<%= form_with(model: [ @article, @article.comments.build ], local: true) do |form| %>
、私はただのカードIDに対応する番号を入力する人々をしたいので、私は持っています次の形式:
アプリ/ビュー/キューブ/ show.html.erb
<%= form_with(model: [ @cube, @cube.cubecards.build ], local: true) do |form| %>
<p>
<%= number_field(:card, :id, in: 1.0..8000.0, step: 1) %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
問題は、@cube.cubecards.build
が私に問題を起こしているということです。レールでCube::CubeCard
の初期化されていない一定のエラーがスローされます。
他のスレッドでは、pluralityがa common issueになっていることがわかりましたが、ここで問題になるものは見つかりませんでした。
私はまた、this fellow had a similar issueに気付きましたが、受け入れられた解決策が私のコードには当てはまらないと言えるでしょう。投票率の高いソリューションはコントローラに関するものです。ここに私のキューブカードコントローラは次のとおりです。
アプリ/コントローラ/ cube_cards_controller.rb
class CubeCardsController < ApplicationController
def create
@cube = Cube.find(params[:cube_id])
@cubecard = @cube.cubecards.create(cubecard_params)
redirect_to cube_path(@cube)
end
private
def cubecard_params
params.require(:cubecard).permit(:card)
end
end
もう一度明確にするために、cube
は多くcube_cards
を持つことができます。
Iはまた、アンダー追加、cubecards
にcubecard
複数を変更しようとしている(cubecard
- >cube_card
とcube_cards
)を、さらに大文字cubecard
- >CubeCard
と無駄にCubeCards
。
私が従っているチュートリアルは、1つの問題なしでフォームにスキップしているように見えるので、初心者である間違いをしているはずですが、今日は明らかな解決策なし。
私はこれをWindows 7マシンでローカルに実行しています。これは、完了したらウェブホストに移行する予定です。
有用な場合は、コードon githubを掲載しました。
NameError in Cubes#show
Showing C:/Sites/pokecube/app/views/cubes/show.html.erb where line #25 raised:
uninitialized constant Cube::Cubecard
Extracted source (around line #25):
<p>
Add a Card:
<%= form_with(model: [ @cube, @cube.cubecards.build ], local: true) do |form| %>
<p>
<%= number_field(:card, :id, in: 1.0..8000.0, step: 1) %>
</p>
はまた、私のコンソールには、次のようなエラーを吐く:
Completed 500 Internal Server Error in 69ms (ActiveRecord: 1.0ms)
ActionView::Template::Error (uninitialized constant Cube::Cubecard):
22:
23: <p>
24: Add a Card:
25: <%= form_with(model: [ @cube, @cube.cubecards.build ], local: true) do |form| %>
26: <p>
27: <%= number_field(:card, :id, in: 1.0..8000.0, step: 1) %>
28: </p>
app/views/cubes/show.html.erb:25:in `_app_views_cubes_show_html_erb___540381856_44810532'
githubリポジトリのコードにCubeデータベースの移行がありませんか? –
@StephanePaquet、ファイルを追加して再コミットしました。私はテーブルを落とすためにそれを動かしました。私はdb:migrateを使用してキューブテーブルを削除し、それを再度追加しました。キューブの移行から何もしたくないので、 –
実際のエラーを投稿してください。実際に間違っているというよりむしろ間違っていると思うものだけを表示しています。両者が同じであれば、質問する必要はありません。 – jamesc