当我尝试在我的 Rails 3 应用程序上安装 Recaptcha 时出现以下错误。我已将 recaptcha 标记放在我的 _form 文件中(见下文附件)。
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 文件
<%= 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 %>
帖子控制器
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
宝石文件
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