2012-04-08 49 views
5

当我尝试在Rails 3应用程序上安装Recaptcha时出现以下错误。我已将recaptcha标签放入我的_form文件中(请参阅下面的附件)。Rails 3/Recaptcha安装 - 未定义的本地变量或方法`recaptcha_tags'

Showing /Users/fkhalid2008/loand/app/views/posts/_form.html.erb where line #20 raised: 

undefined local variable or method `recaptcha_tags' for #<# <Class:0x12d4e1870>:0x12d4dac78> 
Extracted source (around line #20): 

17: <div class="actions"> 
18:  <%= f.submit %> 
19: </div> 
20: <%= recaptcha_tags %> 
21: <% end %> 

能否请您指教?


_FORM.HTML.ERB FILE

<%= form_for(@post) do |f| %> 
<% if @post.errors.any? %> 
<div id="error_explanation"> 
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2> 

<ul> 
<% @post.errors.full_messages.each do |msg| %> 
<li><%= msg %></li> 
<% end %> 
</ul> 
</div> 
<% end %> 

<div class="field"> 
I am a <%= f.text_field :title %> getting married in <%= f.text_field :job %> in <%= f.text_field :location %>, and looking for a wedding photographer. My budget is <%= f.text_field :salary %>. 
</div> 
<div class="actions"> 
<%= f.submit %> 
</div> 
<%= recaptcha_tags %> 
<% end %> 

Posts控制器

def create 
@post = Post.new(params[:post]) 

respond_to do |format| 
if verify_recaptcha && @post.save 
format.html { redirect_to :action=> "index"} 
format.json { render :json => @post, :status => :created, :location => @post } 
else 
format.html { render :action => "new" } 
format.json { render :json => @post.errors, :status => :unprocessable_entity } 
end 
end 
end 

的Gemfile

source 'http://rubygems.org' 

gem 'rails', '3.1.1' 
gem "twitter-bootstrap-rails", "~> 2.0.1.0" 
gem 'recaptcha', :require => 'recaptcha/rails' 

group :production do 
gem 'pg' 
end 

group :development, :test do 
gem 'sqlite3' 
end 

gem 'json' 

group :assets do 
gem 'sass-rails', '~> 3.1.4' 
gem 'coffee-rails', '~> 3.1.1' 
gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

RECAPTCHA.RB

Recaptcha.configure do |config| 
config.public_key = '6LdR......' 
config.private_key = '6LdR7.....' 
end 

回答

9

我试图重现你的错误,而是通过Readme一切行走后运行良好。

您是否重新启动服务器?

的步骤i制备:

  1. 生成API密钥
  2. 创建的配置/初始化/ recaptcha.rb与您的代码和我的钥匙
  3. 改变了我的形式与<%= recaptcha_tags%>
  4. 重新启动服务器,初始化程序正在加载

就是这样......也许只是试一试吧时间。

+2

重新启动服务器工作。卫生署!谢谢!!! – hikmatyar 2012-04-08 10:20:13

相关问题