2017-02-07 11 views
1

に追加するので、ブートストラップモーダル 内にサインアップスクリプトを作成しようとしていますが、失敗します。RoR登録スクリプトをブートストラップモーダル

同じスクリプトは、そのウォンのページで動作しますが、ここではうまくいかない理由はわかりません。

ブートストラップの使用には特別なものがありますか?ここで

はエラーです: Rails Error以下

はモーダル内容

ここ
<div class="modal fade" id="register-modal" tabindex="-1"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title">Register</h4> 
     </div> 
     <%= form_for(@user) do |f| %> 
     <div class="modal-body"> 
      <div class="form-group"> 
      <label for="inputEmail" class="col-sm-2 control-label">Email</label> 
      <div class="col-sm-10"> 
       <%= f.text_field :first_name, :placeholder => "First name" %> 
      </div> 
      </div> 
      <div class="form-group"> 
      <label for="inputPassword" class="col-sm-2 control-label">Password</label> 
      <div class="col-sm-10"> 
       <%= f.text_field :last_name, :placeholder => "Last name" %>    </div> 
      </div> 
      <div class="form-group"> 
      <label for="inputPassword" class="col-sm-2 control-label">Password</label> 
      <div class="col-sm-10"> 
       <%= f.email_field :email, :placeholder => "Email" %> 
      </div> 
      </div> 

     <div class="form-group"> 
     <label for="inputPassword" class="col-sm-2 control-label">Password</label> 
     <div class="col-sm-10"> 
      <%= f.password_field :password, :placeholder => "Password" %> 
     </div> 
     </div> 
    <div class="modal-footer"> 
     <%= f.submit "Create an account", class: "btn btn-primary btn-submit" %> 
    </div> 
    <% end %> 
</div> 

である私のユーザーコントローラ

class UsersController < ApplicationController 

    def new 
    @user = User.new 
    end 
end 

とユーザモデル

class User < ApplicationRecord 

    has_secure_password 

end 

、最終的には私のdb:私のユーザーのためにファイルを移行

class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
     t.string :first_name 
     t.string :last_name 
     t.string :email 
     t.string :password_digest 

     t.timestamps 
    end 
    end 
end 

つ以上のビットは、それがされていない場合でも、あなたはインスタンス変数を参照することができRubyでは、私のルート

Rails.application.routes.draw do 
    root 'home#index' 

    get 'signup' => 'users#new' 
    resources :users 
end 
+1

はINDEXメソッドを追加して、何をコピーなぜなら、@userがインデックスコントローラに定義されていないからです。 – bxorcloud

+0

こんな感じですか? 'クラスがUserController

+0

はい。それを試して@エゼキエル – bxorcloud

答えて

1

です

irb(main):001:0> @foo 
=> nil 

これはまさにここで起こっていることです。あなたは気にせず行動の束で同じフォームを使用したい場合は、コントローラが設定した場合、あなただけの||(または) 演算子を使用することができます@userインスタンス変数:あなたのコントローラに

<%= form_for(@user || User.new) do |f| %> 
    # ... 
<% end %> 
+0

それはそれをしました。どうもありがとうございます! –

関連する問題