railsnoobquestion:我正在尝试开发一个功能,用户可以在rails中保存对象,然后再将其转发到表单,以创建另一个对象。
我可以想到两个选择: - 创建一个全新的路线 - 将数据添加到餐厅帖子对象,检查控制器中的数据?
是否有人制作了类似的功能?
THX
答案 0 :(得分:0)
这是posts资源的标准创建操作。
def create
@post = Post.new params[:post]
if @post.save
redirect_to @post, notice: 'Post was successfully created.'
else
render :new
end
end
您需要做的就是将重定向从@post
更改为new_post_path
。
redirect_to new_post_path, notice: 'Post was successfully created.'
这就是你要找的东西吗?
答案 1 :(得分:0)
解决方案是使用另一个提交按钮创建隐藏的表单字段:
%input#create_another{:name => "create_another", :type => "hidden", :value => 0 }
%a.btn.btn-info#submit_another
然后使用javascript提交表单:
jQuery(document).ready(function() {
$("#submit_another").click(function() {
$('#create_another').attr('value','1');
console.log($('#create_another').attr('value'));
$(".formtastic").submit();
return true;
});
});
在相应的控制器内部,在我的例子中,类别控制器:
if params[:create_another].nil?
@create_another = false
else
@create_another = (params[:create_another] == "1")
end
respond_to do |format|
if @category.save
if @create_another
format.html { redirect_to new_restaurant_category_path(@restaurant), notice: I18n.t(:entry_successfully_created, :name => I18n.t(:category_singular)) }