在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而不是最后定义的位置创建方法。
答案 0 :(得分:1)
create
操作应由POST
触发,而不是GET
,这就是没有特定路线的原因。
答案 1 :(得分:0)
使用button_to
代替link_to
。我尝试使用link_to
,甚至在指定method: :post, action: :create
之后,仍然需要使用GET进行索引。使用button_to
并在####_path
中传递params后,它直接转到create
方法并将数据添加到数据库。虽然我不确定它的正确方法或安全方法。