我想复制wordpress post功能。
例如,您可以创建新帖子并以两种方式保存 - "发布帖子"和"制作草案"
使用Rails资源路由我创建了create
方法和new
方法。
我还创建了自定义方法,以便在发布模式和草稿模式下保存。
class GroupEventsController < ApplicationController
def new
@ge = GroupEvent.new
end
def publishnew
@ge = GroupEvent.new(groupevent_params)
@ge.save
redirect_to @ge
end
def create
@ge = GroupEvent.new(groupevent_params)
@ge.save
redirect_to @ge
end
private
def groupevent_params
abort params.inspect
params.require(:group_event).permit(:name, :description, :startdate, :duration, :status)
end
提交表单时效果很好,但是当你去发布新方法时它不起作用。 它显示了这样的错误。 param丢失或值为空:group_event
我该如何解决?
答案 0 :(得分:1)
我建议采用不同的方法来获得相同的行为。
如果我理解正确,您希望表单提交的行为方式不同。
如何添加两个按钮......
f.submit :publish
f.submit :draft
这会有一些像
这样的东西<input type="submit" value="publish" id=".." name="commit" />
<input type="submit" value="draft" id=".." name="commit" />
然后在控制器动作中你可以做一些像
这样的事情class GroupsEventsController < ApplicationController
def create
if params[:commit] == 'publish'
publish_event
else
draft_event
end
end
private
def publish_event
// Appropriate code here
end
def draft_event
// Appropriate code here
end
end
这样你就不需要在客户端做JS foo doo来让它发布到不同的路由。