5

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

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
4

1 に答える 1

9

私はあなたのエラーを再現しようとしましたが、Readmeを一通り読んだ後、すべてうまくいきました。

サーバーを再起動しましたか?

私が行った手順:

  1. API キーを生成する
  2. あなたのコードと私のキーで config/initializers/recaptcha.rb を作成しました
  3. <%= recaptcha_tags %> でフォームを変更しました
  4. サーバーを再起動し、イニシャライザがロードされている

それだけです...おそらくもう一度試してみてください。

于 2012-04-08T07:36:27.193 に答える