[英]how to add a `preview` action to resources?
我正在尋找正確的方法,以在new
動作和create
動作之間包括preview
動作。 假設我有以下內容:
resources :users
默認情況下,提交表單時:
new
,則調用create
action; edit
,則調用update
操作。 這樣,我可以對new
和create
使用相同的形式(局部),這太好了!
如何配置資源以在動作之間包含preview
。 我的意思是,強制new
調用preview
,然后preview
以調用create
。
我可以添加一個新的路線/動作,並為該動作指定表格,但是同一表格不能用於new
和edit
。
有沒有一種方法可以配置資源呢?
看看這個railscast: multibutton表單 ,它顯示一個同時具有“ preview”和“ submit”按鈕的表單,也許這是您可能想要做的。
順便說一句,您不能通過將局部變量傳遞給局部變量來使用相同的表單嗎? 例如:
<%= form_for @profile, url: dynamic_path do |f| %>
...
<% end %>
<%= render 'form', dynamic_path: profile_preview_path %>
您有幾種方法可以做到這一點:
preview
操作(您必須為其添加路線)。 preview
。 還有2種動態可能性:
create
動作, preview
動作發送ajax發布請求 ,呈現部分表單並將其包含在頁面上,然后在用戶仍然擁有他剛剛填寫的表單時,用戶決定如果她想修改或提交。 我建議添加DateTime列“ finished_at”,“ published_on”等...適合您的域的任何內容。
以博客文章為例:
scope :published, where("published_on IS NOT NULL")
scope :draft, where(:published_on => nil)
在適當的地方使用合並范圍和新字段來限制后續操作。
這種方法為您提供的不僅僅是您想要的:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.