1
浏览优秀的Rails tutorial by Michael Hartl(第8章),我试图在我的(Haml)视图中使用由Rails提供的form_tag
帮助器。通过form_tag
传递给该块的表单的值为nil
,我猜这不是预期的用途,因为它阻止在表单中生成字段。我不明白我做错了什么。Rails帮助器form_for将nil:NilClass参数传递给块
这里HAML代码:
= form_tag(sessions_path) do |f|
= # f.label :email # undefined method `label' for nil:NilClass
= f.class.name # NilClass
= form_for(:session, url: sessions_path) do |f|
= f.label :email # Email
= f.class.name # ActionView::Helpers::FormBuilder
这里说的它(form_tag
)第一部分生成HTML:
<form accept-charset="UTF-8" action="/sessions" method="post"><div style="display:none"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="c72gY3kuFKTFxNerFWT5fH1n63cp9U8Wj0+UBTllqPQ=" /></div>
nil
</form>
相反的form_for
有预期的行为。
我找不到在互联网上搜索的答案:在RailsCast 270 about Authentication(约3:30),视频显示的代码与我的相似。在Stackoverflow和Google上使用form_tag
,NilClass
或haml
等关键字进行搜索时,我找不到相关答案。
有人会对我做错了什么有线索吗?谢谢!
谢谢,我不知道我是怎么错过的! – wacha