【问题标题】:How to post html form data to controller using ruby on rails 3.1如何使用 ruby​​ on rails 3.1 将 html 表单数据发布到控制器
【发布时间】:2014-05-05 10:03:34
【问题描述】:

我在 Rails 3.1 上使用 ruby​​。我正在尝试将 html 表单数据发布到控制器以将记录保存在数据库中。但是我遇到了这样的路由错误“没有路由匹配 [POST] first/save”。但是当我尝试在地址栏中运行此链接时,例如“127.0.0.1:3000/first/save”,它工作正常。谁能告诉我哪里做错了。

我的路线是这样的:

Rails.application.routes.draw do 

  root 'first#hello'


  get 'first/save'

end

而我的html表单是这样的:

    <form accept-charset="UTF-8" method='post' action='/first/save'>

        <label for='S.No'>S.No</label> 
            <input type="text" name="s_no" placeholder='Enter s. no.'> 
        <label for='name'>Name</label>
            <input type="text" name='name' placeholder='Enter your name'> <br>
        <label for='seller_id'>Seller ID</label>
            <input type="text" name='seller_id' placeholder='Enter your seller ID'> <br>
        <label for='email'>Email</label>
            <input type="email" name='email' placeholder='Enter your email'> <br>
        <label for='img_url'>Image</label>
            <input type='text' name='img_url' placeholder='Enter your image url'> <br>
            <input type="submit" name='save' value='Save'>
    </form>

这是我的控制器:

class FirstController < ApplicationController

  def save
    @name = params[:name]
    @email = params[:email]
    @seller_id = params[:seller_id]
    @img_url = params[:img_url]
    @s_no = params[:s_no]
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3.1


    【解决方案1】:

    如果你想做 POST 请求,而不是

    get 'first/save'
    

    你应该有

    post 'first/save'
    

    【讨论】:

    • 使用帖子显示错误 'ActionController::InvalidAuthenticityToken in FirstController#save' @ Marek Lipka
    • @Randhir 这是另一个问题的材料。如果您希望禁用检查真实性令牌,您应该将config.action_controller.allow_forgery_protection = false 行添加到application.rb 文件。
    • skip_before_filter :verify_authenticity_token 将此添加到控制器的开头。
    • @Randhir Rorschach 的建议更好,如果您想禁用仅为此控制器检查真实性令牌。
    • 是的,我执行了罗夏的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2012-05-01
    • 2012-06-27
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多