前提・実現したいこと
Railsのlink_toを使用して非同期でbooleanのパラメーターを反転させたい。
発生している問題・エラーメッセージ
非同期で通信しており、2回目以降ボタンをクリックして送信してもパラメーターhas_filedのbooleanが反転しない(1回目の送信は反転する)。
【1回目クリック(DBでのhas_filed保存状態がtrueの場合)】
Parameters: {"user"=>{"has_filed"=>"false"}}
【2回目クリック】
Parameters: {"user"=>{"has_filed"=>"false"}}
該当のソースコード
【index.slim.rb】
ruby
1= link_to user_path(user: {has_filed: !@user.has_filed}), remote: true, method: :patch do 2 .btn 3 | 変更
【users_controller.rb】
ruby
1 def update(user_params) 2 @user.update_attributes(user_params) 3 end 4 5 private 6 7 def user_params 8 params.require(:user).permit(:has_filed) 9 end
試したこと
ruby
1= link_to update(user: {has_filed: (!@user.has_filed)}), remote: true, method: :patch do 2 .btn 3 | 変更
↑のようにパラメーターセット部分を
ruby
1has_filed: (!@user.has_filed)
と()で括ってみましたが結果は変わりませんでした。
他にも↓のようにlink_to内で三項演算子を試してみましたが、やはり非同期だと2回目以降はbooleanが反転しませんでした。
ruby
1= link_to update(user: {has_filed: @user.has_filed ? false : true}), remote: true, method: :patch do 2 .btn 3 | 変更
大変恐縮ではございますが、対処法をご教示いただけないでしょうか。
そもそもlink_toでは実現しないなどございましたらご指摘いただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/18 23:36 編集
2021/01/19 03:13
2021/01/19 04:08
2021/01/21 23:20
2021/01/22 00:50
2021/01/22 01:35
2021/01/22 10:58
2021/01/22 12:05
2021/01/22 21:44