haml 为输入字段赋值

haml assign value to input field

当控制器字段不为空时,我试图在输入字段中插入一个值。

%input{:name => "user[email]", :placeholder => "Email", :type => "email", :value => @params[:user][:email] if @params[:user] && @params[:user][:email]}/

这就是我想要做的,但显然我遇到了一个错误:

syntax error, unexpected modifier_if, expecting ')'
e => @params[:user][:email] if @params[:user] && @params[:us
                 ^
/xxx/xxx/xxx syntax error, 
unexpected ')', expecting keyword_end
@params[:user][:email])).to_s);; _hamlout.buffer << (">\n<in
                  ^

我应该修改什么才能使其正常工作?

提前致谢:)

您需要将条件值括在括号中 (...)

试试这个

%input{:name => "user[email]", :placeholder => "Email", :type => "email", 
       :value => (@params[:user][:email] if @params[:user] && @params[:user][:email])}