4-2 form_for 等解说
form_for
是什么黑魔法?
form_for
是什么黑魔法?- form_for 是 Rails 的表单产生器,Rails 会智能的根据你指定的“物件”
@group
与栏位f.text_field :title
展开,产生表单,这个表单的 html 长得实际是这样:
<form class="new_group" id="new_group" action="/groups" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="t62lKWMo2WWuNOAquFxHZk4/viiih6WEg7L9rQCoYWcR3CkhdllALm3ok2Wg4GaqDlAQPtBlNi+8ga9YDqVKiA==">
标题
<input type="text" name="group[title]" id="group_title">
<br>
叙述
<br>
<textarea name="group[description]" id="group_description"></textarea>
<br>
<input type="submit" name="commit" value="Submit" disable_with="Submiting..." data-disable-with="Submit">
</form>
Rails 怎么知道我传了什么东西进来?
打开表单,试着送出一笔资料,注意看你的 log (rails s的那个视窗),会发现 Rails 会自动去解析表单里面的栏位,“压缩”成一个东西叫 "group"=>{"title"=>"board 1", "description"=>"body"}, "commit"=>"Submit"}
。这就是params
group_params 又是什么?
这是一个“过滤器架构”叫 Strong Parameter,在这里你先不用详细理解 Strong Parameter 是什么,你只要知道因为 Rails 很聪明的会翻译你的表格,所以外面的坏人会想要偷塞一些垃圾进来,所以我们要设一个“允许进来的栏位”,在这里就是title
与 description
Updated less than a minute ago