【发布时间】:2017-05-07 12:20:02
【问题描述】:
我在使用 erb 设置 HTML 表单字段的值时遇到问题。场景是用户输入了无效密码——我不希望他们必须重新输入他们的姓名/电子邮件地址/等,所以这些应该保留在适当的表单字段中。
我正在使用erb来做这个,如下:
#app.rb
post '/new-user' do
@user = User.new({params})
if @user.save # <-- this will fail if user info is invalid
session[:user_id] = @user.id
redirect '/chitter-newsfeed'
else
flash.now[:notice] = 'Password and confirmation password do not match'
erb :sign_up
end
end
#sign_up.erb
<form action="/new-user" method="post" >
Name:
<input type="text" name="real_name" value=<%=@user.real_name%> ><br>
User Name:
<input type="text" name="user_name" value=<%=@user.user_name%> ><br>
etc.
我的问题是代码只填充 HTML 字段,直到任何字符串 erb 给它的第一个空格。例如如果@user.real_name 为"Foo Bar Baz",则"real_name" 输入字段中只会出现"Foo"。
经过测试,@user.real_name 没有被破坏——即使在表单呈现后它仍然设置为“Foo Bar Baz”。如果我对表单字段的值进行硬编码,它可以呈现带有空格的名称。这与 erb 和打破这一点的 HTML 之间的相互作用有关。知道可能是什么问题吗?
【问题讨论】: