2016-04-08 9 views
0

Rails newbie. Mevcut kullanıcının bilgilerini çeken bir bölüm oluşturuyorum ve kullanıcı düzenlemeyi tıkladığında yaptığı değişiklikleri kaydedebilir. Ancak, kullanıcılar kaydettikten sonra değişiklikler yansıtılmıyor. Burada neyi kaçırdığımı söyler misin? İşte Ruby on raylar kullanıcının detaylarını düzenledikten sonra değişiklik göstermiyor

kullanıyorum html/yakut biçimi şöyledir: rotalar İşte

<%= 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 %> 

var:

İşte
put :patient_profile, to: 'users#patient_profile' 
    post :dashboard, to: 'dashboard#index' 

kontrolör kodlardır:

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

Hatayla veya kayıt değildi güncellenmektedir olduğunu musunuz? –

+0

Hata görmüyorum, sadece veriler güncellenmiyor – Mona

cevap

0

görünmüyor Form alanlarınız aslında modelinizi eşleştirmediğinden formunuz aslında bir şey güncelleniyor. Formunuz eylemi basitleştirerek deneyin:

Görünüm

<%= 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 %> 

Denetleyici:

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, Kullanıcı adı için aşağıdaki gibi tek bir alanım var: <% = text_field_tag ​​(: inputFieldName, "#{@user.first_name} # { @ user.last_name} ", {: disabled => true})%> Bunun için yolunuzu nasıl entegre edebilirim? – Mona

+0

Denetleyicideki paramiklikleri ayarlama gibi görünmüyor. Kullanıcı adı için günlüklerde params mı görüyorsunuz? –

+0

Kullanıcılarımda özel yöntemler olarak var: 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) uç – Mona