ページを更新せずにサブスクライバーのデータをデータベースに保存する必要がある Rails プロジェクトがあります。
そこで、Ajax ボタンをコーディングしました。ボタンをクリックするとアラートがポップアップし、作成されたばかりの新しいユーザーの ID が返されます。問題は、モデルUser.lastの最後のレコードの Rails コンソールを見ると、レコードのすべてのフィールドが nil (ID を除く) であることです。この問題を解決するにはどうすればよいですか?
ルート:
users_new GET /users/new(.:format) users#new
users GET /users/index(.:format) users#index
create POST /users/create(.:format) users#create
これが app/views/users/new.html.haml の私のビューです
.form1
%h1
Subscriber
=form_for @user do |form|
- unless @user.errors.empty?
- @user.errors.full_messages.each do |message|
.alert.alert-danger
%ul
- @user.errors.full_messages.each do |message|
%li= message
%div{ :data => { :role => :content} }
.row.form-group
.col-lg-3
%label
Email:
=form.text_field :email, :class => 'form-control'
.row.form-group
.col-lg-3
%label
Name:
=form.text_field :name, :class => 'form-control'
.row.form-group
.col-lg-3
%label
Phone Number:
=form.text_field :phone_number, :class => 'form-control'
.row.form-group
.col-lg-3
%label
Address:
=form.text_field :address, :class => 'form-control'
%ui-grid-a
%ui-block-a
%a.primary{ :data => { :role => :button, :remote => create_path, :parent => '.form1', :success => 'saved' } } Save
これはコントローラーです:
class UsersController < ApplicationController
def index
end
def new
@user = User.new
end
def create
@user = User.new params[:user]
@user.save
render :json => @user
end
end
私のjsファイル:
function saved(user){
alert(user.id);
}