意見:
!!!
%html
%head
%title= full_title(yield(:title))
=stylesheet_link_tag "application", media: "all"
=javascript_include_tag "application"
=csrf_meta_tags
=render 'layouts/shim'
%body
=render 'layouts/header'
.container
=flash.each do |key, value|
%div{class: "alert alert-#{key}"} #{value}
コントローラ
def create
@user = User.new(params[:user])
if @user.save
flash[:success] = "This is Correct"
redirect_to @user
else
flash[:wrong] = "no"
render 'new'
end
end
フラッシュ(:successまたは:wrongなど)に関係なく、常にハッシュ全体をhtmlとしてコンパイルします(以下)。
出力:
<!DOCTYPE html>
…
<div class='container'>
<div class='alert alert-wrong'>no</div>
{:wrong=>"no"}
</div>
</body>
</html>
なぜ{:wrong=>"no"}
表示されているのかわかりません。私はこのターミナルを何時間も見つめてきました。興味深いのは、ハッシュがcontainer
IDとともに出力されているが、alert
クラスには出力されていないことです。インデントの問題のように感じますが、私はいくつかの順列を通過しましたが、成功しませんでした。