ROR学习笔记

1.关于form_for的理解
<% form_for :book,@book,:url=>{:controller=>'',:action=>''} do |f|%>
:book 决定 name 和 id <input name="book[]" id="book[]">
@book 决定 value值 <input value="">

所以在新建model的表单都没有@book参数
在update和delete的表单里都带上@book参数用来显示

2.关于form.select
<%= form.select :book , @arr %>
@arr = Category.all.collect {|c| [c.name,c.id]}
页面显示:
<option value="c.id">c.name</option>


3.关于action跳转
redict_to :controller => '' ,:action => 'method_name'(方法名)(在同一个controller里时:controller可省略)

render :action => 'page_name' (页面名)


4.关于model之间的联系
@book = @user.books.build(params[:book])
当 book belongs_to :user
   user has_many :books
的时候 @book在创建的时候就直接跟user挂上钩了


5.子模板:partials用法
命名以"_"开头,例如"_owner.rhtml"
要和父页面在同一个目录
在这个页面会生成跟页面名字一样的对象,在"_owner.rhtml"页,会有一个owner对象
这个对象有什么属性,取决于从父页面传过来的对象。(他俩一样)

在父页面调用子页面:
1.调用一次
<%= render :partials => 'owner' ,:object => @book %>

这里 的 bject 就是向子页面传的值 这样 在"_owner.rhtml"页的owner对象就有了@book的全部属性了

2.调用多次
<%= render :partials => 'owner' ,:object => @user.books %>

这个就是多次调用

你可能感兴趣的:(java,C++,c,C#,Ruby)