質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1027閲覧

form_with内でのif文とhidden_field_tag

fresh_fish

総合スコア20

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/08/20 15:58

前提・実現したいこと

form_with内でif文を使いhidden_field_tagでハッシュに値を代入したいのですが可能でしょうか
(user_idがemptyだった場合0を代入する)
もし不可能ならなにかいい方法を教えていただけると嬉しいです

該当のソースコード

<div class = "nested-fields"> <%=f.label "メンバー名" %> <%= f.collection_select :user_id, User.all, :id, :name,include_blank:"募集中" %> <%if :user_id.empty? %> ##ここです <%= f.hidden_field_tag user_id: 0 %> <%end %> <%=f.label "パート" %> <%= f.select :part,[["Vo1","Vo1"],["Vo2","Vo2"],["GtVo","GtVo"],["Gt1","Gt1"],["Gt2","Gt2"],["Ba","Ba"],["Dr","Dr"],["Key","Key"],["その他","その他"]], class: "form-control"%> <%= link_to_remove_association "メンバーを削除", f ,class:"btn btn-danger btn-remove"%> </div>

試したこと

ソースコードの通り記述してみましたがエラーが起きるわけでもなく効果はありませんでした

詳細情報

rails 6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asm

2020/08/20 21:45

user_idとは何ですか? collection_select で同名を指定していますが、ブラウザ側でsubmit時にblankだったら0にしたいという事でしょうか?
guest

回答1

0

ベストアンサー

viewの中のifなどは(rubycode全て)ブラウザーに渡すhtmlを作るためにあります。ですので、ブラウザーに渡った時点では ifはなくなってます。
htmlを作る時の条件で実行されますから
if :user_id.empty?  すなわちsymboleはemptyではないですので、必ず実行されることになります。

controllerがわでnilは扱えないので0にしたい、ということでしたら
controllerにて user_id = user_id.to_i とすればよいです
`params[FOO][:user_id] = params[FOO][:user_id].to_i}'かな

投稿2020/08/20 22:27

winterboum

総合スコア23401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fresh_fish

2020/08/21 00:35

viewのifはそういう動きになっていたんですね 概念的なところからわかりやすく教えていただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問