Ruby: 2.4.1
Rails: 5.1.3
コントローラーのcreateでrender :newをした際、表示された画面でCSSが効いていない状態です。色々状況を確かめたところ、text_field内のclass指定が解除されており、renderで再度読み込まれたviewファイルにclassが効いていないのではないかと思います。
Ruby
1# app/controllers/aaa/abc_controller.rb 2def create 3 @fac = current_owner.facilities.build(fac_params) 4 if @fac.save 5 flash[:success] = "正常に登録できました。" 6 redirect_to :action => "edit", :id => @fac.id 7 else 8 flash.now[:danger] = "登録内容にエラーがあります。" 9 render :new 10 end 11 end
Ruby
1# app/views/aaa/newhtml.erb 2<%= f.text_field :name, :placeholder => "名前", :maxlength => 50, :class => "mb10 w_full" %>
↑の:class => "mb10 w_full"は初期読み込み時(バリデーションエラー前、つまりactionでいうnewで読み込んだ際)はclassがちゃんと効いているのですが、エラー後(つまりactionのcreateでelseに入り、renderで呼び出された際)はclassが効いていない状態です。
renderで読み込まれた際にもちゃんとclassが効くようにするにはどうしたらいいでしょうか。
「classが効いていない状態」というのは,HTML を確かめたら class 属性が付いていないことが分かった,ということでしょうか。それとも,見た目で期待した体裁になっていない,ということでしょうか。
renderで表示されたページで「ソースを見る」を見ても打ち込んだHTMLが表示されないので見た目ではありますが、正しく表示されているnewの画面でclassを外した状態と全く同じになることを確認しております。という意味では見た目でになってしまいますが、renderで指示したviewソースにclassがついているのについていないレイアウトになってしまっているところが問題点となります。
ソースに出ない原因はわかりませんが,DOM インスペクターではどう見えますか。Firefox なら,入力欄で右クリックして「要素を調査」で。
回答1件
あなたの回答
tips
プレビュー