一键更新用户

时间:2014-11-05 04:49:53

标签: ruby-on-rails ruby

我尝试创建应用以更新用户信息,但是当我第一次点击编辑按钮时,我的应用会自动删除当前信息并呈现当前视图,然后我必须再次点击进入编辑视图。我的问题是,我只想一键编辑视图。所以,请帮助我。

这是我的用户视图。

<%= link_to "edit", welcome_edit_path(@user)%>

这是在我的编辑视图中

<div class="medium-4 medium-centered row">
    <div class="medium-10 medium-centered columns">
        <h3>Edit</h3> 
        <%= form_tag(:controller =>"welcome", :action => "edit", :method => "post") do %>
        Avatar<%= file_field_tag(:image)%>
        <%= submit_tag("Save", class: "button [tiny small large]")%>
        <%end%>
    </div>
</div>

我的控制器

def edit
    @user = User.find(params[:id])
    @user.assign_attributes(:image => params[:image])
    if @user.changed?
      if @user.save
        redirect_to @user
      else
        render 'edit'
      end
    else
    end
  end

我的路线

  get '/welcome/edit/:id', to: 'welcome#edit', as: 'welcome_edit'
  match '/welcome/edit/:id', to: 'welcome#edit', via: 'post'

我认为我的控制器或路线出了问题。

1 个答案:

答案 0 :(得分:1)

我不知道你是否打算做这样的行为,但是什么让你进入个人资料是redirect_to @user,你不需要渲染任何东西

def edit
  @user = User.find(params[:id])
  @user.assign_attributes(:image => params[:image])
  @user.save if @user.changed?
end