こんにちは、私は Rails と MVC にかなり慣れていませんが、私のアプリケーションにはユーザーがいて、ブートストラップ モーダルを使用してホームページからすばやくサインアップし、通常のサインアップ ページからサインアップできるようにしたいと考えています。
ユーザー コントローラーで、モーダルのパーシャルを作成しました_newUserModal.html.erb
。これをホーム コントローラーのインデックス アクションで使用したいと考えています。
アクション内の別のコントローラーからパーシャルをロードする必要があることを読みました。だから私は次のことを試しています
class HomeController < ApplicationController
def index
render 'users/newUserModal'
end
end
これは私にエラーを与えています
テンプレートがありません
{:locale=>[:en]、:formats=>[:html]、:handlers=>[:erb、:builder、:coffee]} のテンプレート users/newUserModal がありません。検索場所: * "/home/jeff/Development/iHaul/app/views" * "/home/jeff/Development/iHaul" * "/"
小さな何かが欠けているような気がしますが、それを理解することはできません。
レンダーを home.html.erb の一番下に移動することで、コードが機能するようになりました。これがベストプラクティスではないことはわかっていますが、今のところ機能しています。誰かが問題に光を当てることができれば、それは大いに役立ちます。
別のコントローラーのパーシャルを使用している人への私のアドバイスは、パーシャルにメソッドと同じ名前を付けないことです。その場合は、render に部分ファイルを使用するように具体的に指示する必要があります
render :partial => 'controller/action'
上記の方が読みやすいですが、注意深いレンダリングが正常に機能する場合。