1

ページを更新せずにサブスクライバーのデータをデータベースに保存する必要がある 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);
}
4

1 に答える 1