首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用form_tag在rails数据库中存储复杂记录

用form_tag在rails数据库中存储复杂记录
EN

Stack Overflow用户
提问于 2012-07-10 21:44:09
回答 1查看 263关注 0票数 0

我想把记录保存在数据库里。许多列值将从http请求获取到api。

我有一个文本字段和一些复选框,以及将被持久化的表单中的session_id。这将从另一个控制器(form_tag('results#store'))发布到结果控制器中名为store的操作。

存储操作:

代码语言:javascript
运行
复制
def store

  query = query_preprocesser(params[:query]) # this is in a helper

  ## example of resArray ##
  #resArray = [[{:engine => "bing, :results => [{:Description => "abc", :Title => "def"}, {:Description => "ghi", :Title => "jkl"}]}, {etc},{etc} ],[{:eng...}]]

  resArray = getResults(query) # Also a helper method returning an array of up to 3 arrays
  resArray.each do |engine|
  db_name = engine[:engine]
      engine[:results].each do |set|

        res = Result.new(
        :session_id => params[:session_id], 
        :db_name => db_name,
        :query => query,
        :rank => set[:Rank],
        :description => set[:Description],
        :title => set[:Title],
        :url => set[:Url] )
    res.save!
   end
  end

res.each do |res|
    res.save
end
#Result.new(:session_id => params[:session_id], :db_name => "Bing", :query => "Whats the story", :query_rank => 1, :title => "The Title", :description => "descript", :url => "www.google.ie",:query_number => 1)

respond_to do |format|
      format.html { redirect_to pages_path }
      format.json { head :no_content }
    end
end

我的路线是resources :results

服务器日志:

代码语言:javascript
运行
复制
[2012-07-10 23:30:48] INFO  WEBrick 1.3.1
[2012-07-10 23:30:48] INFO  ruby 1.9.3 (2012-04-20) [x86_64-linux]
[2012-07-10 23:30:48] INFO  WEBrick::HTTPServer#start: pid=15584 port=3000


Started POST "/results" for 127.0.0.1 at 2012-07-10 23:31:36 +0100
Connecting to database specified by database.yml
Processing by ResultsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"/nTJOF5Ab+XnL+jxRBHnTJz45YRVmgbf55bmn5/iz8E=", "query"=>"search term", "button"=>"", "searchType"=>"Seperate", "bing"=>"1", "session_id"=>"e08c13a99f21a91520fcc393e0860c94"}
(0.2ms)  begin transaction
(0.2ms)  rollback transaction
Rendered results/_form.html.erb (13.9ms)
Rendered results/new.html.erb within layouts/application (23.6ms)
Completed 200 OK in 213ms (Views: 78.4ms | ActiveRecord: 2.9ms)

表格:

代码语言:javascript
运行
复制
<%= form_tag('results#store') do %>

Rake路由:

代码语言:javascript
运行
复制
       store POST   /pages(.:format)             results#store
      results GET    /results(.:format)           results#index
              POST   /results(.:format)           results#create
   new_result GET    /results/new(.:format)       results#new
  edit_result GET    /results/:id/edit(.:format)  results#edit
       result GET    /results/:id(.:format)       results#show
              PUT    /results/:id(.:format)       results#update
              DELETE /results/:id(.:format)       results#destroy
        store POST   /pages(.:format)             results#store
        pages GET    /pages(.:format)             pages#index

我一直被重定向到结果控制器中的新动作。助手方法甚至没有被执行。我是一位处理复杂问题的大师,有人能帮我解开这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-10 23:42:25

您有为store操作设置的路由吗?如果您这样做了,那么您应该在表单标记中使用url助手:

代码语言:javascript
运行
复制
form_tag( results_store_url )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11422494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档