Moja aplikacja działa tak:
Najpierw akcja auth
def auth
auth = request.env["omniauth.auth"]
cookies.permanent[:email] = auth["info"]["email"]
cookies.permanent[:name] = auth["info"]["name"]
cookies.permanent[:phone_number] = auth["info"]["phone"]
redirect_to new_ad_path, notice: t('ad.auth.succesfully_authenticated')
end
Przekazywane są parametry, którymi następnie zostaną wypełnione pola w formularzu
= f.input :name,:input_html => { :value => cookies[:name] }
= f.input :email, :input_html => { :value => cookies[:email] }
Po wypełnieniu formularza mamy akcję create
def create
@ad = Ad.new(params[:ad])
if msg = @ad.create_by(params[:ad][:email])
cookies.permanent[:email] = [params[:ad][:email]]
cookies.permanent[:name] = [params[:ad][:name]]
cookies.permanent[:phone_number] = [params[:ad][:phone_number]]
flash.notice = t("ad.create.#{msg}")
redirect_to root_path
else
render :new
end
end
Można to jakoś poprawić? Myślałem, że np. przy wypełnianiu formularza ukryć pola :name i :email i wyświetlić tylko możliwość edycji danych z akcji auth. Pewnie za pomocą Ajaxa lub Jquery. Tylko jak się do tego zabrać.