Rails 请教各位一个 rails 的问题

ptmagic · 2012年04月06日 · 最后由 sapphire 回复于 2014年11月06日 · 3130 次阅读

本人新手,我最近在看http://guides.rubyonrails.org/按照上面的案例在做实验,其中对于

Editing post

<%= render 'form' %>

<%= link_to 'Show', @post %> | <%= link_to 'Back', posts_path %> 是如何链接到 Update 这个 Acion 这个地方不是很明白,请问是否 render 'form' 这句的作用

一般 _form.html.erb 中会有 <%= form_for @post... %>,生成表单时会根据 @post 来自动生成 update action 为 form target。

<%= render 'form' %>把_form.html.erb 这个页面引进来了 是在那里改的

感谢二位的回答,现在清楚了。<%= render 'form' %>把_form.html.erb 导入进来进行编辑,然后一般 _form.html.erb 中会有 <%= form_for @post... %>中会有@post这个实例变量,但是我看了具体的代码,没有出现到 update action 啊 #1 楼 @ashchan #2 楼 @douya0808

#2 楼 @douya0808 您好,@post这个变量也应该是一个 Post 对象啊,究竟是怎么生成表单的时候根据@post来自动生成出 update action 呢?

项目名/app/controllers/posts_controller.rb 下面里面有 index,show,create,update 等方法

#5 楼 @douya0808 对没错啊,在 edit 这个 action 中链接到 edit 的 html。然后导入了_form.html.erb 这个这个页面,然后页面上有个 form for 表单提交,提交的代码可以省略成<% form_for(@post) do|f| %> ... <% f.submit %> 在这段代码里面没有提到如何将一个 form 表单给提交到 update atcion 上啊?

#5 楼 @douya0808 刚才看了下网页的源代码,结果发现生成的代码中包含了 form 表单的 value 是 Update

其实我也是大菜猪 你看明白没 没明白我俩研究研究 哈哈哈哈哈

在编辑的页面地址栏的 url 是http://127.0.0.1:3000/students/28/edit这种形式 在更新的页面地址栏是这种形式http://127.0.0.1:3000/students/28 你可以看一下 Http 的四种动作和什么叫 RESUful 路由 应该就明白了

#8 楼 @douya0808 哈哈我才是菜鸟肉鸡呢。确实没搞清楚,我看了下源代码关于新增一个 post 中也是用的_from 这个页面,然后这个页面上的决定是新增还是修改取决于一个 form_for 这个方法怎么写的。难道要看源代码去?

rails 认为:controller=>'student,' :action=>'update'这种调用方法方式不是很方便 于是加入了 RESTful 路由 根据 URL 的不同形式自动执行不同的动作 上图走起~http://dennis-zane.iteye.com/blog/64513

#9 楼 @douya0808 懂了,类似于加了这句 resources :post

对 写了这个路由系统就会给你自动生成 8 个路径 posts_url 和 posts_path 对应于 index 和 create 这两个 action new_post_url 和 new_post_path 对应于 new 这个 action edit_post_url 和 edit_post_path 对应于 edit 这个 action post_url 和 post_path 对应于 show,update,destroy 这三个 action 然后具体是其中的哪个 action 就看 http 的动作了

#13 楼 @douya0808 看的真纠结,回去啃书去,争取向你靠齐

哎呀 别闹

请问要想在这个 form 表单 submit 的时候校验文本框是否为空,校验代码该写在哪里?我写<%=f.submit onclick="validate()" %>它不识别 onclick 啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号