Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 从视图向模型提交表单信息,然后调用模型运行_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 从视图向模型提交表单信息,然后调用模型运行

Ruby on rails 从视图向模型提交表单信息,然后调用模型运行,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,我试图从视图中的表单提交信息,该表单将提交的info:hashtag传递到模型中,然后使用该信息运行模型。但我的模型似乎只是用“hashtag”而不是表单信息来运行。我相信很接近。我就是不知道下一步该去哪里 home.html.erb <div class="row"> <div class="span6 offset2"> <%= form_for :hashtag do |f| %>

我试图从视图中的表单提交信息,该表单将提交的info:hashtag传递到模型中,然后使用该信息运行模型。但我的模型似乎只是用“hashtag”而不是表单信息来运行。我相信很接近。我就是不知道下一步该去哪里

home.html.erb

  <div class="row">
      <div class="span6 offset2">

                <%= form_for :hashtag do |f| %>
                <div class="input-prepend input-append">
                <span class="add-on swag">#</span>

                <%= f.text_field :hashtag , class: "span3 inverse", id:"appendedPrependedInput" %>

                <%= f.submit "Swag!", class: "btn btn-inverse" %>
                <% end %>

        </div>
      </div>
      <div class="span4">
        <div id="hashtags">
            <% @random_hashtags.each do |hashtag| %>
            <blockquote><%= hashtag.content %></blockquote>
            <div class="from">&mdash; @<%= hashtag.screen_name %></div>
        <% end %>
        </div>
    </div>
</div>
class Hashtag < ActiveRecord::Base
  attr_accessible :content, :profile_image, :screen_name, :tweet_date, :tweet_id

  def self.pull_hashtag
  Twitter.search("%#{hashtag}").results.map do |tweet|
    unless exists?(tweet_id: tweet.id)
        create!(
            tweet_id: tweet.id,
            content: tweet.text,
            profile_image: tweet.profile_image_url,
            screen_name: tweet.from_user,
            tweet_date: tweet.created_at
            )   
        end     
    end
  end
end

#
&mdash@
hashtag.rb

  <div class="row">
      <div class="span6 offset2">

                <%= form_for :hashtag do |f| %>
                <div class="input-prepend input-append">
                <span class="add-on swag">#</span>

                <%= f.text_field :hashtag , class: "span3 inverse", id:"appendedPrependedInput" %>

                <%= f.submit "Swag!", class: "btn btn-inverse" %>
                <% end %>

        </div>
      </div>
      <div class="span4">
        <div id="hashtags">
            <% @random_hashtags.each do |hashtag| %>
            <blockquote><%= hashtag.content %></blockquote>
            <div class="from">&mdash; @<%= hashtag.screen_name %></div>
        <% end %>
        </div>
    </div>
</div>
class Hashtag < ActiveRecord::Base
  attr_accessible :content, :profile_image, :screen_name, :tweet_date, :tweet_id

  def self.pull_hashtag
  Twitter.search("%#{hashtag}").results.map do |tweet|
    unless exists?(tweet_id: tweet.id)
        create!(
            tweet_id: tweet.id,
            content: tweet.text,
            profile_image: tweet.profile_image_url,
            screen_name: tweet.from_user,
            tweet_date: tweet.created_at
            )   
        end     
    end
  end
end
class Hashtag
hashtags\u控制器

    class HashtagsController < ApplicationController

    def home 
        @random_hashtags = Hashtag.order("RANDOM()").limit(4)
    end

    def create
        @hashtag = Hashtag.pull_hashtag(params[:search])
    end         
end
类HashtagsController
更新了我当前使用的代码,因为我没有向模型发布任何内容

虽然正在提交,但似乎没有任何进展。

更新2


我正在尝试将信息发布到数据库中,方法是从表单中获取信息,在其上运行Twitter.search并在我的数据库中创建结果。

您能尝试用此替换吗

form_for @hashtag, :url => :action => 'home'

我的猜测是需要指定操作。

在hashtags\u控制器中是否还有其他方法(如create)?相关路由是什么样子的?这是完整的hashtags\u控制器文件。在路由中没有什么真正的定制,root:to=>“hashtags#home”我不太明白您想要实现什么,但是如果您发送该表单,它应该包括键
“hashtag”=>{“hashtag”=>}
我相信在params中。试图让def self.pull_hashtag与提交表单的结果一起运行会产生各种错误
:语法错误、意外的tASSOC、期望关键字_end…或@hashtag、:url=>:action=>“home”do | f |@output_buffer^
应该是@hashtag的
形式_,:url=>{:action=>'home'}
在这种情况下(不知道这是否是解决方案)为NilClass:Class`……给出了错误
未定义的方法
model\u name',如果
@hashtag
有一个值,那么使用
:hashtag
,就太粗鲁了。不确定你在这里说的是什么