コントローラをインスタンス変数にアクセスすることができません:Railsの - ビューに
def store
if params[:name].present? && params[:pass].present? && params[:cpass].present? && params[:role].present?
@name = params[:name].downcase
if CheckEmpName(@name) == 0
render "userexist"
return
end
pass = params[:pass]
cpass = params[:cpass]
if pass != cpass
render "passerror"
return
end
role = params[:role]
@user = Employee.new(name: @name, password: pass, role: role)
@user.save
end
render "success"
end
上記のアクションは、すべてのユーザ入力が有効である「success.html.erb」ページをレンダリングします。代わりに、ユーザ名が既に登録されている場合は、 またはパスワードと確認パスワードの両方が一致しない場合は、適切なエラーファイル "userexist.html.erb"または "passerror.html.erb"がレンダリングされます。
問題:
私はsuccess.html.erbファイルに@nameインスタンス変数にアクセスすることができています。しかし、私は両方のエラー htmlファイルにアクセスすることができません。なぜそれが "成功"ではなく "userexist"と "passerror"でしかアクセスできないのです。なぜアクセスできないのですか?そして、私は に何をする必要がありますエラー処理HTMLページの両方でこれらの変数にアクセスするのですか?
ビューを表示する –
レンダリングを3回使用する必要があります.1つだけレンダリングし、フラッシュ[:エラー]を渡すか、またはパーシャルを使用してください。 1つの方法でレンダリングやリダイレクトを何度も使用すると、レールにもエラーが表示されます。 – tebayoso
*「両方のエラーhtmlファイルでアクセスできません」*これはどこで起こったのですか?私は 'userexist'や' passerror'がレンダリングされているところは見ません。 –