【问题标题】:Rails: Update users via linkRails:通过链接更新用户
【发布时间】:2016-12-25 14:51:07
【问题描述】:

我正在尝试通过我视图中的链接更新设计记录。

这就是我所拥有的:

= link_to "Update", user_registration_path(current_user, user: {abc: true}), method: :put, remote: true

我遇到以下问题:

为#调用私有方法`to_param'

如何远程更新此记录?

【问题讨论】:

    标签: ruby-on-rails ruby ajax devise ruby-on-rails-5


    【解决方案1】:

    当我尝试这样做时,我所做的是创建一个链接解析为喜欢的方法

    路线

    resources :users do 
      match "update_abc" => "update_abc#users", :as => :update_abc, via: :get
    end
    

    现在在你看来你可以做到

    users_update_abc_path(current_user, abc: true, efg: 21)
    

    在控制器中

    def update_abc
      user = user.find(params[:id])
      if params[:abc].present?
        user.abc = params[:abc]
      end
      ....
      user.save
      redirect_to :back
    end
    

    我希望这会有所帮助:)

    【讨论】:

    • 是否可以创建一个处理多个属性的方法?
    • 是的,您可以将user.update_attribute 更改为user.update_attributes
    • 我可以将要更新的属性传递给附加值的方法吗?
    • 我刚刚通过传递额外的值更新了答案,
    • 现在,如果我有 3 个可以更新的属性,但我只传递了一个,那会引发错误,对吧?
    猜你喜欢
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2012-10-30
    • 2013-07-15
    • 1970-01-01
    • 2015-05-08
    • 2011-01-06
    • 1970-01-01
    相关资源
    最近更新 更多