Ruby on rails 从视图向模型提交表单信息,然后调用模型运行
我试图从视图中的表单提交信息,该表单将提交的info:hashtag传递到模型中,然后使用该信息运行模型。但我的模型似乎只是用“hashtag”而不是表单信息来运行。我相信很接近。我就是不知道下一步该去哪里 home.html.erbRuby 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| %>
<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">— @<%= 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">— @<%= 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
,就太粗鲁了。不确定你在这里说的是什么