2016-04-08 10 views
0

I am Rails newbie。私は、既存のユーザーの詳細を引き出しているセクションを作成しています。ユーザーが編集をクリックすると、彼は自分が行った変更を保存できます。ただし、変更がユーザーに保存されると反映されません。ここで私が何が欠けているのか教えていただけますか?ユーザーの詳細を編集した後でRuby on Railsの変更が反映されない

は、ここで私が使用していますHTML /ルビーフォームの:

<%= form_tag(html: {:id => 'user_profile_form'}, :url => patient_profile_path(@user), :method => :put) do %> 
    <%= text_field_tag(:inputFieldName, "#{@user.first_name} #{@user.last_name}", {:disabled => true}) %> 
    <%= submit_tag 'Save', :id=> 'saveButton' %> 
    <%= end %> 

は、ここでのルートです:ここで

put :patient_profile, to: 'users#patient_profile' 
    post :dashboard, to: 'dashboard#index' 

は、コントローラのコードです:

def patient_profile 
    if params[:user] 
     u = params[:user] 
     @user.first_name = u[:first_name] unless u[:first_name].nil? || u[:first_name].empty? 
     @user.last_name = u[:last_name] unless u[:last_name].nil? || u[:last_name].empty? 
     @user.save! 
     # index 
     render :index 
    end 
    end 
+0

あなたはエラーを取得している、またはレコードが更新されていませんか? –

+0

エラーが発生していない、データが変更されていないだけです – Mona

答えて

0

それは見ていませんフォームフィールドがモデルに一致しないため、実際にフォームを更新しています。フォームのアクションを簡素化してみてください。

ビュー

<%= form_for(@user, html: {:id => 'user_profile_form'}, :url => patient_profile_path(@user), :method => :put) do |f| %> 
    <%= f.text_field :first_name %> 
    <%= f.text_field :last_name %> 
    <%= f.submit "Update User" %> 
    <%= end %> 

コントローラー:

def patient_profile 
     # TODO: Handle failed validation 
     @user.update_attributes!(params[:user]) 

     # index 
     render :index 
    end 
    end 

    def user_params 
    params.require(:user).permit(:first_name, :last_name) 
    end 
+0

Anthony、私は以下のようにユーザーの名前のための単一のフィールドを持っています:<%= text_field_tag(:inputFieldName、 "#{@user.first_name}#{ @ user.last_name} "、{:disabled => true})%>どうやってこれに統合できますか? – Mona

+0

コントローラー内のパラメーターを設定しているように見えません。ログにユーザーの名前のパラメータが表示されていますか? –

+0

私は個人的な方法として私のユーザのコントローラにこれらを持っています:def patient_profile_params params.tab do | p | p.permit(:FIRST_NAME) p.permit(:LAST_NAME) p.permit(:DATE_OF_BIRTH) p.permit(:diabetes_type) p.permit(:a1c_reading) エンド – Mona

関連する問題