如何链接以使用rails中的link_to标记创建操作

时间:2013-09-11 23:59:15

标签: ruby-on-rails

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

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

,但是当我点击生成的链接时没有任何反应,并且网址会更改为

    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 

3 个答案:

答案 0 :(得分:0)

在rails <%= link_to 'Create new user' , new_user_path %>中,查看Documentation以获取有关路由的详细信息。

答案 1 :(得分:-1)

尝试使用(未经测试):

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

答案 2 :(得分:-1)

您应该使用从路线生成的指定路径。

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

您可以通过运行rake routes并查看第一列来查找这些方法的名称。为本地链接添加_path,为完整网址添加_url

More on named routes here