0
votes

I'm using Authlogic for my authentication system in a Rails 2.3.8 application for a client of mine. I have a model, CommunityEventUser, that needs to be updated with new attributes. The controller code is this:

  def edit
    @user = current_user 
  end

  def update
    @user = current_user
    if @user.update_attributes(params[:community_event_user])
      flash[:notice] = "You updated your profile!"
      redirect_to community_event_user_path
    else
      render :action => :edit
    end
  end

It's just standard edit/update RESTful code. When I go to the view for editing the user account information, submitting the form with changes to any attributes besides password and password_confirmation, and leaving those last two fields blank redirects me to a page with this error on:

Template is missing

Missing template community_event_users/edit.erb in view path app/views

And this URL:

http://localhost:3000/events/user.%23%3Ccommunityeventuser:0x10495ad80%3E

However, when I do matching passwords in the two password fields, the user is updated correctly. I thought standard Authlogic use allowed simply ignored blank password and password_confirmation fields on update. What could be the problem here?

View code for edit:

- set_page_title "Login - Community Calendar"

%h2.replaced#h2-edit_account Edit Account

    - content_for :sidebar do
      = render :partial => 'community_events/sidebar'

    = render 'community_event_user'
1

1 Answers

0
votes

Instead of

render :action => :edit

you could use:

render :template => "community_event_users/edit"

So, do you have a file like: "yourapp/views/community_event_users/edit.erb" ?

If not, use the path to your edit-view-file.