Rails 表单的 id 到底代表什么,很困惑

shangrenzhidao · 2013年11月15日 · 最后由 shangrenzhidao 回复于 2013年11月15日 · 2259 次阅读

<%= form_for @event, :url => { :controller => 'events', :action => 'update', :id => @event} do |f| %> <%= f.label :name, "Name" %> <%= f.text_field :name %>
<%= f.label :description, "Description" %> <%= f.text_area :description %>

<%= f.submit "Update" %> <% end %> ==================HTML 代码================

<form accept-charset="UTF-8" action="/events/update/1" class="edit_event" id="edit_event_1" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="H3mxVhDPQ6StwbGsOcGrNTMj2qrqxXKh2fPHqJahnD0=" /></div>
    <label for="event_name">Name</label> 
    <input id="event_name" name="event[name]" size="30" type="text" value="张三的" /> <br>
    <label for="event_description">Description</label>
    <textarea cols="40" id="event_description" name="event[description]" rows="20">
爱打球</textarea> <br>

    <input name="commit" type="submit" value="Update" />


</form>

这个:url 中的 id 是不是代表这个对象本身,还是这个对象的 id 属性?

action="/events/update/1"

这个 1 就是 id。楼主连着发了很多入门提问贴了,请多看书多思考。

#1 楼 @Rei 谢谢,id="edit_event_1" 这个 id 指的是什么?

#2 楼 @shangrenzhidao HTML 的 id,根据表单参数自动生成的,现在用不上。

#3 楼 @Rei :id => @event,总觉得@event 应该就是一个对象,而不是一个数字

#4 楼 @shangrenzhidao 试试 @event.to_param 的结果。

#6 楼 @shangrenzhidao 是啊,就是这么来的。

#7 楼 @Rei 谢谢,原来是利用 to_param 实现 Ruby on Rails 的 URL 优化,确实很基础

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