Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中提交而不使用formhelpers_Ruby On Rails - Fatal编程技术网

Ruby on rails 在rails中提交而不使用formhelpers

Ruby on rails 在rails中提交而不使用formhelpers,ruby-on-rails,Ruby On Rails,我是rails新手,仍然通过railstutorial学习诀窍,但这本书通过表单提交对db进行了所有更改(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html). 但是如果没有这个,我将如何提交(更新数据库),比如说我想添加一些在页面上计算的分数(例如,通过js计数器-为简单起见,让我们说它是一个常量10),我的数据库由一个名为score的列组成。然后在按下提交按钮后,我将如何更新数据库 谢谢两个简单的方法:

我是rails新手,仍然通过railstutorial学习诀窍,但这本书通过表单提交对db进行了所有更改(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html). 但是如果没有这个,我将如何提交(更新数据库),比如说我想添加一些在页面上计算的分数(例如,通过js计数器-为简单起见,让我们说它是一个常量10),我的数据库由一个名为score的列组成。然后在按下提交按钮后,我将如何更新数据库

谢谢

两个简单的方法:

  • 使用表格
  • 将URL参数与链接一起使用
Rails端的处理(而不是GET v.POST)是相同的——它只是一个参数


如果您使用的是JavaScript,那么不必使用表单,因为您只需更新表单输入元素并正常提交即可。

事实上,这非常简单

  • 常量10从视图中提交。提交需要指向将处理此请求的控制器操作。因此,提交按钮应该使用
    :controller
    :action
    :id
    参数构建url。在表单中,这在
    声明的
    表单中处理。您将在
    按钮标签
    声明中处理

  • 应配置路由,以便此消息可以到达控制器/操作

  • 常量10在params散列中传输。如果字段是my_计数器,则查找
    参数[:my_计数器]
    。如果表单是针对模型的,比如tweets,那么它可能位于
    params[:tweet][:my_counter]

  • 在控制器操作(可能是更新)中,您将首先获取要更改的记录,例如
    @score=score.find(:params[:id])
    。这个
    params[:id]
    也来自submit的视图。在这里更改计数器,然后保存

    def update
      @score = Score.find(:params[:id])
      @score.counter = params[:my_counter]
      @score.save
      redirect_to :action => :index  # or wherever
    end
    
  • 祝你好运