挑戦していること
Rails5とBootetrapでモーダルウィンドウを作るまで
Rails5と BootstrapでAjax-modalform
を挑戦しています。
Railsのバージョンは5.0.6
Railsのバージョンは5.0.2
に変えました。
Bootstrapのバージョンは、4
です。
slim
を用いていますが、js関連は、js.erb
に拡張子を設定しています。
上記の資料は$ r g scaffold user name:string
から始まるシンプルな資料です。
困ってること
= form_for @user do |f|
から
= form_for (@user,remote:true) do |f|
に変更後、モーダルが表示されない様子をGif
ではお伝えしています。
ajax
でのUser#new
,User#create
を実装したいので、困っています。
ご教授頂ける方、いらっしゃったらよろしくお願いします。
下記にコードを掲載します。
コード
app/views/users/index.html.slim
= link_to 'New User', new_user_path, remote:true,class:"btn btn-lg btn-primary" #user-modal.modal.fade tabindex="-1" role="dialog" aria-hidden="true"
new.js.erb
$("#user-modal").html("<%= escape_javascript(render 'form') %>") $("#user-modal").modal("show")
app/views/users/_form.html.slim
.modal-dialog .modal-content = form_for (@user,remote: true) do |f| # remoteをつけるとモーダル動かない。 / = form_for (@user) do |f| # remoteをはずすとモーダル動く .field = f.label :name = f.text_field :name
app/controllers/users_controller.rb
def new @user = User.new end 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 } format.js { @status = "success"} # 追加部分 else format.html { render :new } format.json { render json: @user.errors, status: :unprocessable_entity } format.js { @status = "fail"} # 追加部分 end end end
些細な情報でも構いません、
ご教授いただける方よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。