在控制器中跳过新方法(向右转到创建方法)

时间:2014-11-12 19:08:18

标签: ruby-on-rails

在Rails中,我想完全跳过控制器中的“new”方法并直接转到create方法。 (我不需要提交任何表单数据,只是想直接根据当前登录用户的数据创建对象。)

在rake路由中,我没有看到允许我直接链接到控制器的create方法的前缀,所以我认为我应该链接到新方法并将其重定向到create action而不接受任何输入。 / p>

我尝试使用以下内容执行此操作:

 def new
    create
 end

 def create
    @request = Request.new
    @request.requestor_id = current_user.id
    @request.status = "S1"
    @request.save

    respond_with(@request, :location => "/products/findexchanges")
 end

在浏览数据库时,我可以看到这是在调用create动作并将记录添加到数据库中,但是在完成之后它会将我重定向到new.html.erb而不是最后定义的位置创建方法。

2 个答案:

答案 0 :(得分:1)

create操作应由POST触发,而不是GET,这就是没有特定路线的原因。

答案 1 :(得分:0)

使用button_to代替link_to。我尝试使用link_to,甚至在指定method: :post, action: :create之后,仍然需要使用GET进行索引。使用button_to并在####_path中传递params后,它直接转到create方法并将数据添加到数据库。虽然我不确定它的正确方法或安全方法。