在rails 3中,是否可以創建一個適用於新的,更新和編輯操作的form_for?單個form_for如何爲新的,更新和編輯工作?
如果是的話,我該怎麼做?
我有一個管理部分,所以我的網址是這樣的:
/admin/posts/ {new,update, edit}
在rails 3中,是否可以創建一個適用於新的,更新和編輯操作的form_for?單個form_for如何爲新的,更新和編輯工作?
如果是的話,我該怎麼做?
我有一個管理部分,所以我的網址是這樣的:
/admin/posts/ {new,update, edit}
因爲要發送的新需求,創建和編輯需要發送更新單個的form_for將無法正常工作。除非(其我並不推薦),您將三級運營商在form_form PARAMS
form_for(@post, :url => (@post.new_record? ? admin_posts_url : admin_post_url(@post)))
因爲在你的新動作,你將不得不Post.new這將創建一個無ID的對象,並在你的編輯你將擁有的動作Post.find(PARAMS [:ID])
只要讓form_for
手柄它:
控制器:
class ControllerName
def new
@post = Post.new
end
def edit
@post = Post.find params[:id]
end
end
視圖:
<%= form_for [:admin, @post] do |f| %>
<% end %>
代替`@ post.id.nil?`,我更喜歡`@post.new_record ?` – Chirantan 2011-02-15 06:06:47
我同意這感覺太hacky,所以你不建議。但是,我們如何模擬默認的form_for行爲,在創建和編輯對象時總是會有所不同,而無需使用資源和專用控制器。應該有這樣的`:url => {:create => {:action =>'',:controller =>''},:update => {:action =>'',:controller =>'' }}`,不應該嗎? – 2013-07-18 10:46:22