根据Rails

时间:2015-08-20 10:49:31

标签: ruby-on-rails routes

我在船上做一个用户,显示一个表格,其中包含提交并从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

由于

2 个答案:

答案 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')