私のレールアプリでは、ユーザーが特定のクイズを取っていない場合は空白のチェックボックスを表示しますが、チェックボックスがある場合はerbを使用します。 ERBの現在のユーザ変数のメソッドエラーがありません
<% if current_user.bal_code.nil? || current_user.flex_code.nil?%>
<a href="app/views/users/show.html.erb"><%= image_tag "Checkbox Blank.png", class: "sf-checkbox", alt: "Blank Checkbox"%>
<h5><strong>Step 4: <br class="xs-none"></strong>Finish Your Profile</h5></a>
<% else %>
<%= image_tag "Checkbox Green.png", class: "sf-checkbox", alt: "Checked Checkbox"%>
<h5><strong>Step 4: <br class="xs-none"></strong>Finish Your Profile</h5>
<% end %>
私は文の場合、このため
undefined method 'bal_code' for #<User:0x007fd7edc41040>
を言っていない方法でのエラーを取得しますが、以前は私が
<% if current_user.gender.nil? %>
を使用する/ else文は完全に罰金働いていた場合:私のステートメントがある場合。
current_user.gender
がなぜ機能するのかわかりませんが、
current_user.bal_code
はエラーを送出しますか?
これが役に立ちましたら、これは私のapplication.html.erb
コード(各ページのフッターにあります)にあります。私のスキーマの適切なデータベース構造は次のとおりです。
create_table "bal_quizzes", force: :cascade do |t|
t.integer "user_id"
...
t.string "bal_code"
end
add_index "bal_quizzes", ["user_id"], name: "index_bal_quizzes_on_user_id"
...
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.string "password_digest"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "gender"
...
end
なぜこのエラーメッセージが表示されるのですか?
の
<% if @quiz.bal_code.nil? ... %>
のようになります。私は 'current_user.bal_quiz.nil?'を回避策として使い終わったが、 'bal_quiz'モデルの中で一つの変数が存在するかどうかをチェックする必要があるなら、どうすればいいのかまだ分かっていないクイズそのもの? – Liz