前提・実現したいこと
Rails5と Bootstrap4でAjax-モーダルフォームを表示したい。
こちらの記事リンク内容を参考にしましたが、表示できませんでした。
indexページにあるNew Userボタンを押すと、通常はnewページに遷移しますが、
ここでモーダルを表示させたいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
views/users/_form.html.erb
<div class="modal-dialog"> <div class="modal-content"> <%= form_for(@user, remote: true) do |f| %> <div class="field"> <%= f.label :name %> <%= f.text_field :name %> </div> <div class="actions"> <%= f.submit %> </div> <% end %> </div> </div>
views/users/new.js.erb
$("#user-modal").html("<%= escape_javascript(render 'form') %>") $("#user-modal").modal("show")
views/users/index.html.erb
<h1>Users</h1> <table> <thead> <tr> <th>Name</th> <th colspan="3"></th> </tr> </thead> <tbody> <% @users.each do |user| %> <tr> <td><%= user.name %></td> <td><%= link_to 'Show', user %></td> <td><%= link_to 'Edit', edit_user_path(user) %></td> <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td> </tr> <% end %> </tbody> </table> <br> <%= link_to 'New User', new_user_path, remote: true, class: "btn btn-lg btn-primary" %> <div id="user-modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true"></div>
controllers/users_controller.rb
class UsersController < ApplicationController before_action :set_user, only: %i[ show edit update destroy ] # GET /users or /users.json def index @users = User.all end # GET /users/1 or /users/1.json def show end # GET /users/new def new @user = User.new respond_to do |format| format.html{} format.js {} end end # GET /users/1/edit def edit end # POST /users or /users.json def create @user = User.new(user_params) respond_to do |format| if @user.save format.html { redirect_to @user, notice: "User was successfully created." } format.json { render :show, status: :created, location: @user } else format.html { render :new, status: :unprocessable_entity } format.json { render json: @user.errors, status: :unprocessable_entity } end end end # PATCH/PUT /users/1 or /users/1.json def update respond_to do |format| if @user.update(user_params) format.html { redirect_to @user, notice: "User was successfully updated." } format.json { render :show, status: :ok, location: @user } else format.html { render :edit, status: :unprocessable_entity } format.json { render json: @user.errors, status: :unprocessable_entity } end end end # DELETE /users/1 or /users/1.json def destroy @user.destroy respond_to do |format| format.html { redirect_to users_url, notice: "User was successfully destroyed." } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_user @user = User.find(params[:id]) end # Only allow a list of trusted parameters through. def user_params params.require(:user).permit(:name) end end
現在、New Userをクリックしても何も反応せず、進むボタンを押すとモーダルではない普通のformが表示されます
見本のまま入力したつもりですが、どこかミスしているようです。
どこが悪いのでしょうか?
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。