0

したがって、この2段階のTwitterサインインがあり、ユーザーがメールを入力する必要があるページで、未定義のメソッドエラーが発生します。

私のフォーム

<%= simple_form_for(@user, :as => "user", :url => account_create_path, :html => {:class => "form-inline"}) do |f| %>
  <%= f.input :email, :placeholder => User.human_attribute_name(:email), :class => "input-medium" %>
  <%= f.submit "Finish registration", :class => "btn btn-small" %>
<% end %>

これは構文の問題だと思いますが、Rails にかなり慣れていないため、何が問題なのかわかりません。Googleも教えてくれません:)

私のAccounts_controller.rb :

def create
        data = session["devise.omniauth_data"]
        data[:email] = params[:user][:email]
        user = User.find_for_twitter_oauth(data)
        user.email = data[:email]

        if user.save
            flash[:notice] = I18n.t "devise.registrations.signed_up_but_unconfirmed"
            redirect_to root_path
        else
            flash[:error] = I18n.t "devise.omniauth_callbacks.failure",
                                                         :kind => data[:provider].titleize,
                                                         :reason => user.errors.full_messages.first
            render "users/omniauth_callbacks/add_email"
        end
    end

ここに画像の説明を入力

4

1 に答える 1

1

userコントローラーで変数をインスタンス変数に変更@userすると、問題が修正されます。

于 2013-09-02T13:24:26.453 に答える