On Fri, 5 Jun 2009 14:18:18 -0700 (PDT), JannaB <[email protected]>
wrote:
> Sergio,
>
> Yes, I am using Rails 2.3, latest checkout of AS that is a stable
> checkout (a day or two old). Even when I rem out the redirect_to's in
> my update method, it still doesn't execute update_respond_to_html
update_respond_to_html is called from respond_to_action, which is called in
the update method from active_scaffold. As you have overridden the update
method, really is not an ActiveScaffold issue, you have redirect_to
'/associates/' there, so you only have to change it to redirect_to
request.referer and you will go to previous page.
Anyway, you don't need to override so much ActiveScaffold methods usually,
using ActiveScaffold configuration, overriding
#{action}_respond_to_#{format} methods and using
before_(update|create)_save and after_(update|create)_save callbacks is
often enough. I don't know if you are using too much ActiveScaffold in this
controller. Also, you can add before_filters to execute some code before
actions, for example you can add "before_filter :get_states, :only =>
[:new, :edit]", and other before_filters to set @associate, instead of
override ActiveScaffold actions.
>
> On Jun 5, 12:12 pm, "Sergio Cambra .:: entreCables S.L. ::."
> <[email protected]> wrote:
>> Are you using rails 2.3 and ActiveScaffold from master branch?
>> update_respond_to_html is only in rails 2.3. Also, you have update
method
>> override, and there you redirect to /associated
>> rgio
>> On Viernes, 5 de Junio de 2009 15:51:07 JannaB escribió:
>>
>> > Ok, but she's a BIG baby:
>>
>> > class AssociatesController < ApplicationController
>> > #before_filter :require_no_user, :only => [:new, :create]
>> > #before_filter :require_user, :only => :destroy
>> > before_filter :require_associate, :only =>
>> > [:index, :show, :list, :edit, :update, :delete, :destroy, :search]
>> > before_filter :setforlist, :only => [:index, :show, :list]
>>
>> > active_scaffold :associate do |config|
>> > config.label = "Associates"
>>
>> > config.create.columns =
>> > [:username, :email, :prefix, :firstname, :middlename, :lastname,
>> > :street1,
>> > :street2, :city, :state, :postalcode, :country, :phone1, :phone2,
>> > :phone3,
>> > :jobtitle, :organization, :startdate, :dob, :ssno,
>> > :maritalstatus,
>> > :password, :custom1, :custom2, :custom3, :custom4, :branch, :notes
>> > ]
>> > config.update.columns =
>> > [:username, :email, :prefix, :firstname, :middlename, :lastname,
>> > :street1,
>> > :street2, :city, :state, :postalcode, :country, :phone1, :phone2,
>> > :phone3,
>> > :jobtitle, :organization, :startdate, :dob, :ssno,
>> > :maritalstatus,
>> > :password, :custom1, :custom2, :custom3, :custom4, :branch, :notes
>> > ]
>> > config.list.columns =
>> > [:lastname, :firstname, :username, :email, :branch]
>>
>> > #list.columns.exclude :comments
>> > config.columns[:state].form_ui = :usa_state
>> > config.columns[:country].form_ui = :country
>> > list.sorting = {:lastname => 'ASC'}
>> > #columns[:phone].label = "Phone #"
>> > columns[:phone1].description = "(Format: ###-###-####)"
>> > columns[:phone2].description = "(Format: ###-###-####)"
>> > columns[:phone3].description = "(Format: ###-###-####)"
>> > config.actions.exclude :show #, :delete
>> > config.actions.swap :search, :live_search
>> > end
>>
>> > def update_respond_to_html
>> > puts "yakkkk"
>> > puts params[:iframe]
>> > if params[:iframe]=='true' # was this an iframe post ?
>> > responds_to_parent do
>> > if successful?
>> > render :action => 'on_update.js'
>> > else
>> > render :action => 'form_messages_on_update.js'
>> > end
>> > end
>> > else # just a regular post
>> > if successful?
>> > flash[:info] = as_(:updated_model, :model =>
>> > @record.to_label)
>> > return_to_main
>> > else
>> > render(:action => 'update')
>> > end
>> > end
>> > end
>>
>> > def setforlist
>> > session['fromlogin']=0
>> > end
>>
>> > def new
>> > get_states #forces state to be set when edit div displayed
>> > @associate = Associate.new
>> > render :action => 'new', :layout =>
>> > 'other_layout'
>> > end
>>
>> > def create
>> > params[:associate][:state]=params['state']
>> > @associate = Associate.new(params[:associate])
>> > set_branch_code
>> > if @associate.save
>> > if(session['fromlogin']!= nil && session['fromlogin']
>> > ==1)
>> > flash[:notice] = "Registration successful."
>> > redirect_to root_url
>> > end
>> > session['fromlogin']=0
>> > do_list #re-sort, etc from active_scaffold/lib/
>> > active_scaffold/actions/list.do_list
>> > render(:action => 'list', :id => nil)
>> > else
>> > #render :action => 'new'
>> > render :action => 'new', :layout => 'other_layout'
>> > end
>> > end
>>
>> > def edit
>> > get_states #forces state to be set when edit div displayed
>> > @associate=the_associate
>> > render :action => 'edit', :layout => 'other_layout'
>> > _get_states #forces state to be set when edit div
>> > displayed
>> > end
>>
>> > def update
>> > @associate=the_associate
>> > set_branch_code
>> > params[:associate][:state]=params['state']
>> > if @associate.update_attributes(params[:associate])
>> > flash[:notice] = "Successfully updated profile."
>> > #puts session['fromlogin']
>> > if(session['fromlogin']!= nil && session['fromlogin']
>> > ==1)
>> > redirect_to root_url
>> > session['fromlogin']=0
>> > return
>> > end
>> > session['fromlogin']=0
>> > do_list #re-sort, etc from active_scaffold/lib/
>> > active_scaffold/actions/list.do_list
>> > #render(:action => 'list', :id => nil)
>> > redirect_to "/associates/"
>> > else
>> > render :action => 'edit', :layout =>
>> > 'other_layout'
>> > #render :action => 'edit'
>> > end
>> > end
>>
>> > def do_destroy
>> > associate = Associate.find(params[:id])
>> > self.successful = associate.update_attributes(:deleted => -1)
>> > end
>>
>> > def the_associate
>> > if(session['fromlogin']!= nil && session['fromlogin']==1)
>> > return current_associate
>> > else
>> > if params[:id]=="current"
>> > return current_associate
>> > else
>> > return Associate.find(params[:id])
>> > end
>> > end
>> > end
>>
>> > def _get_states
>> > @associate = the_associate
>> > get_states
>> > end
>>
>> > def get_states
>> > q = params[:country]
>> > #puts "******************"
>> > if(q==nil)
>> > @associate = the_associate
>> > if(@associate==nil)
>> > q=Carmen.default_country
>> > else
>> > [email protected]
>> > end
>> > end
>> > #puts q
>> > if(q!=Carmen.default_country)
>> > q1 = q.gsub("_", " ")
>> > q.capitalize!
>> > if(q1!=q && q1!=nil)
>> > q = q1.titleize #q1.split(' ').map {|w|
>> > w.capitalize }.join(' ')
>> > #else
>> > # q.capitalize!
>> > end
>> > q = Carmen::country_code(q)
>> > end
>> > #puts Carmen.default_country
>> > #puts q
>> > #puts (Carmen::states(q)).length
>> > #puts "******************"
>> > @states = Carmen::states(q)
>> > end
>>
>> > def set_branch_code
>> > if @associate.branch==nil
>> > @associate.branch="pending"
>> > else
>> > if(params['xbranch']!=nil)
>> > if @associate.lbranch==""
>> > @associate.branch=(params['xbranch']).to_s
>> > else
>> > @associate.branch=(@associate.lbranch).to_s + (params
>> > ['xbranch']).to_s
>> > end
>> > end
>> > end
>> > end
>>
>> > end
>>
>> > On Jun 5, 3:34 am, "Sergio Cambra .:: entreCables S.L. ::."
>>
>> > <[email protected]> wrote:
>> > > On Jueves, 4 de Junio de 2009 17:45:21 JannaB escribió:
>> > > > Hmmm, I have....and it is never getting invoked?
>>
>> > > Please, post your controller
>>
>> > > > On Jun 4, 11:21 am, "Sergio Cambra .:: entreCables S.L. ::."
>>
>> > > > <[email protected]> wrote:
>> > > > > On Jueves, 4 de Junio de 2009 16:08:30 JannaB escribió:
>> > > > > > Can I override that in my controller? I only need it to work
>> > > > > > with
>> > > > > > one controller/model/view slice, not the whole application.
>> > > > > > -JannaB
>>
>> > > > > Yes you must override it in your controller. Put it below
>> > > > > active_scaffold configure block
>>
>> > > > > > On Jun 4, 5:56 am, "Sergio Cambra .:: entreCables S.L. ::."
>>
>> > > > > > <[email protected]> wrote:
>> > > > > > > On Miércoles, 3 de Junio de 2009 22:47:43 JannaB escribió:
>> > > > > > > > The problem is that it occurs in
>>
>> > > > > > > > Associates.update
>>
>> > > > > > > > Which reroutes me back to the associates table. There has
>> > > > > > > > to be
>> > > > > > > > a way in Associates.update that I can have it do nothing
>> > > > > > > > with
>> > > > > > > > the view?
>>
>> > > > > > > You must to override update_respond_to_html in order to
>> > > > > > > redirect
>> > > > > > > to request.referer for example.
>>
>> > > > > > > > On Jun 3, 3:05 pm, JannaB <[email protected]>
>> > > > > > > > wrote:
>> > > > > > > > > updating Segio (and thank's for that textarea fixup!)
>> > > > > > > > > -Janna
>>
>> > > > > > > > > On Jun 3, 9:53 am, "Sergio Cambra .:: entreCables S.L.
>> > > > > > > > > ::."
>>
>> > > > > > > > > <[email protected]> wrote:
>> > > > > > > > > > On Miércoles, 3 de Junio de 2009 14:32:39 JannaB
>> > > > > > > > > > escribió:
>> > > > > > > > > > > I have a partial, in my main layout,
>> > > > > > > > > > > application.html.erb, the partial appears as
follows:
>>
>> > > > > > > > > > > <% form_for current_associate, :html => {:name =>
>> > > > > > > > > > > 'whereaboutsform'} do |f| %>
>> > > > > > > > > > > <%= f.label :inoutexplanation,
>> > > > > > > > > > > current_associate.nice_to_s << " whereabouts:" %><br
>> > > > > > > > > > > />
>> > > > > > > > > > > <%= f.text_field :inoutexplanation %>
>> > > > > > > > > > > <%= f.submit "Submit" %>
>> > > > > > > > > > > <% end %>
>>
>> > > > > > > > > > > The partial uses my associates table. This partial
>> > > > > > > > > > > exists
>> > > > > > > > > > > in a div at the top of all pages, regardless of what
>> > > > > > > > > > > tale
>> > > > > > > > > > > is presently being displayed by AS. However, when
>> > > > > > > > > > > someone
>> > > > > > > > > > > clicks "Submit", the table being displayed then
>> > > > > > > > > > > reverts
>> > > > > > > > > > > to the associates table, in list view.
>>
>> > > > > > > > > > > What would be a clean way (from an AS perspective)
to
>> > > > > > > > > > > prevent this? Thanks. -Janna B.
>>
>> > > > > > > > > > Is that form creating or updating an associate?
>>
>> > > > > > > > > > --
>> > > > > > > > > > Sergio Cambra .:: entreCables S.L. ::.
>> > > > > > > > > > Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
>> > > > > > > > > > T) 902 021 404 F) 976 52 98 07 E)
>> > > > > > > > > > [email protected]
>>
>> > > > > > > --
>> > > > > > > Sergio Cambra .:: entreCables S.L. ::.
>> > > > > > > Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
>> > > > > > > T) 902 021 404 F) 976 52 98 07 E) [email protected]
>>
>> ...
>>
>> read more »
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/activescaffold?hl=en
-~----------~----~----~----~------~----~------~--~---