ruby – 如何为formtastic行动分配自定义功能?

ruby – 如何为formtastic行动分配自定义功能?,第1张

概述我的表格: <%= semantic_form_for(@campaign) do |f| %>... <%= f.actions do %> <%= f.action :submit, label: "Save"%> <%= f.action :submit, label: "Save & New" %> <%= f.action :cancel, label: " 我的表格:

<%= semantic_form_for(@campaign) do |f| %>...  <%= f.actions do %>    <%= f.action :submit,label: "Save"%>    <%= f.action :submit,label: "Save & New" %>    <%= f.action :cancel,label: "Cancel"%>  <% end %><% end %>

campaign_controller.rb中的函数:

def save_and_new    print 'SAVE_AND_NEW'    @campaign = Campaign.find(params[:ID])    respond_to do |format|      if @campaign.update_attributes(params[:campaign])        format.HTML { redirect_to new_campaign_path,notice: 'Campaign was successfully usaved.' }        format.Json { head :no_content }      else        format.HTML { render action: "edit" }        format.Json { render Json: @campaign.errors,status: :unprocessable_entity }      end    end  end

routes.rb中:

resources :campaigns do     member do      post 'save_and_new'    end  end

路线,根据功能

save_and_new_campaign POST   /campaigns/:ID/save_and_new(.:format) campaigns#save_and_new

而我唯一不理解的是,在行动中要写这个函数.

解决方法 我不确定你正在尝试用save_and_new动作做什么,但我可以告诉你为什么你没有触发它.

默认情况下,使用semantic_form_for创建formtastic的表单将使用RESTful约定,即为新记录执行create *** 作,为现有记录执行更新 *** 作.如果您使用第一个提交按钮(标记为“保存”)成功点击了创建/更新 *** 作,但是您希望第二个“保存和新建”按钮执行不同的 *** 作,则需要检查参数的值[ :commit]在控制器中分叉你提交的处理.也许一些代码会更清楚.假设您正在提交更新现有记录:

def create  if params[:commit] == "Save"    # code for handling "Save" scenario  else    # code for handling "Save & New" scenario,perhaps even directly call:    save_and_new  endenddef update  if params[:commit] == "Save"    # code for handling "Save" scenario  else    # code for handling "Save & New" scenario,perhaps even directly call:    save_and_new  endend

同样,我不清楚你要用save_and_new动作完成什么,并质疑这个假设可能会让你走上更好的设计之路,但回答你的直接问题:检查params [:commit]的值在创建或更新中应该让你在正确的轨道上.

总结

以上是内存溢出为你收集整理的ruby – 如何为formtastic行动分配自定义功能?全部内容,希望文章能够帮你解决ruby – 如何为formtastic行动分配自定义功能?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存