我在船上做一个用户,显示一个表格,其中包含提交并从Twitter获取的数据,我使用相同的表单进行update
操作但是在不同的路线中,如果用户提交了表格他将被引导到他的个人资料页面(对他的个人资料进行基本更新)。我只想为此步骤发出不同的通知消息,因为它使用了update
操作,因此用户可以知道创建的配置文件没有更新。
users/finish_signup.html.haml
= simple_form_for(@user) do |f|
= f.input_field :name
= f.submit t('go')
路线
get ':id', :to => "users#show"
get ':id/finish', :to => "users#finish_signup", :as => 'finish_signup'
完成注册方法
def finish_signup
# ...
# for example
# redirect_to user_show_path_helper(@user), :notice => t('sucess_profile_created')
end
更新方法
def update
@user = User.friendly.find(params[:id])
@page_has_darker_background = true
if @user.update(user_params)
redirect_to user_show_path_helper(@user), :notice => t('sucess_profile_update')
else
render 'edit'
end
end
由于
答案 0 :(得分:1)
执行@user.update(user_params)
后,检查您的user_params是什么,并相应地设置通知消息。
例如。如果params[:user][:first_name]
,则notice:
名字更新为OR
params[:user][:last_name]
然后更新notice:
姓氏,然后redirect_to user_show_path_helper(@user)
答案 1 :(得分:1)
正如@gaurav建议的那样,我添加了一个隐藏字段并根据它进行了验证。
表格
"input.form-control"
更新
= simple_form_for(@user) do |f|
= f.input_field :finish_signup, as: :hidden, value: 'finish_signup'
= f.input_field :name
= f.submit t('go')