我尝试创建应用以更新用户信息,但是当我第一次点击编辑按钮时,我的应用会自动删除当前信息并呈现当前视图,然后我必须再次点击进入编辑视图。我的问题是,我只想一键编辑视图。所以,请帮助我。
这是我的用户视图。
<%= 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'
我认为我的控制器或路线出了问题。
答案 0 :(得分:1)
我不知道你是否打算做这样的行为,但是什么让你进入个人资料是redirect_to @user
,你不需要渲染任何东西
def edit
@user = User.find(params[:id])
@user.assign_attributes(:image => params[:image])
@user.save if @user.changed?
end