2

我试图链接以创建动作,并想像

    <%= link_to "Create new user", {controller: 'users' , action: 'create'}, method: 'post'  %>

,但是当我单击生成的链接时,什么也没有发生,并且 url 更改为

    http://0.0.0.0:3000/users?method=POST+%2Fusers

这表明该请求是作为 GET 请求而不是 POST 处理的,有什么想法吗?

这是用户控制器的创建操作

        def create


        @user = User.new params[:user]

        if @user.save
            flash[:notice] = 'User has successfully been created.'
            redirect_to users_path
        else
            flash[:notice] = 'There was an error creating this user.'
            redirect_to :back
        end

end 
4

3 回答 3

0

在 rails:<%= link_to 'Create new user' , new_user_path %>中,查看文档以获取有关路由的更多信息。

于 2013-09-12T07:09:45.780 回答
-1

尝试使用(未测试):

<%= link_to "Create new user", {controller: 'users' , action: 'create', method: 'post'}  %>
于 2013-09-12T00:31:35.457 回答
-1

您应该使用命名路径,因为它们是从您的路线生成的。

<%= link_to "Create new user", users_path, method: "post" %>

rake routes您可以通过运行并查看第一列来找到这些方法的名称。附加_path本地链接和_url完整 URL。

更多关于命名路线的信息

于 2013-09-12T00:34:06.047 回答