0

このフォームを使用して、カスタム メソッドでコントローラーに変数を渡そうとしています。機能していないようです。フォームを送信しても、ページの読み込みなどは表示されません。

HAML ビュー

= form_for :emails, :url=>{ :action => "make_admin", :controller => "member"}, :remote => true, :html => {:class => "form-inline"} do |f|
  .form-group
    %span
      %p{:style => "float: left;"}
        = f.label :email, "Email:"
        = f.text_field :email, :style=> "width: 200px;", :class => "form-control"
      %p{:style => "margin-left: 10px; float: left;"}
        = f.submit "Make Admin", :class => 'btn btn-success'

コントローラー (member_controller.rb)

class MemberController < ApplicationController
  before_filter :authenticate_user!, :except => [:show, :index]
  layout "dashboard"

  def dashboard
    render :dashboard
  end

  def develop
  end

  def make_admin
    @this_user = User.find(params[:email])
    @this_user.update_attribute :admin, true
    redirect_to '/dashboard/develop'
  end
end

ルート:

    Mvhomefront::Application.routes.draw do
  match '/dashboard' => redirect("/dashboard/volunteer"), via: 'get'
  match '/dashboard/volunteer', to: 'member#volunteer', via: 'get'
  match '/dashboard/events', to: 'events#index', via: 'get'
  match '/dashboard/about', to: 'member#about', via: 'get'

  resources :posts
  resources :events
  resources :signup
  resources :emails do
    get :make_admin
  end
  match '/dashboard/news', to: 'posts#new', via: 'get'
  match '/dashboard/officers', to: 'member#officers', via: 'get'
  match '/dashboard/develop', to: 'member#develop', via: 'get'
  match '/dashboard/manage_events', to: 'events#new', via: 'get'
  match '/dashboard/manage_hours', to: 'member#manage_hours', via: 'get'
  match '/dashboard/manage_users', to: 'member#manage_users', via: 'get'


  root :to => "home#index"
  match '/about', to: 'home#about', via: 'get'
  match '/news', to: 'posts#index', via: 'get'
  match '/officers', to: 'home#officers', via: 'get'

  devise_for :users, :controllers => {:omniauth_callbacks => "users/omniauth_callbacks", :registrations => "registrations"}, :path_names => { :sign_up => "register" }
  resources :users
end
4

1 に答える 1

0

:remote => trueメソッドの が原因で、フォームが送信されたときにページの読み込みが表示されませんform_for。これにより、フォームが ajax 経由で送信され、ページがリロードされなくなります。

于 2013-10-15T02:10:55.430 に答える