我试图链接到创建动作,并想到像
这样的东西 <%= 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
答案 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
。