내 이벤트 컨트롤러의 새로운 및 show 작업에 문제가 있습니다. 현재 이벤트가 나열된 색인에만 액세스 할 수 있습니다. 그러나 새 이벤트를 만들고 심지어 current_users 이벤트를 표시하려고 할 때 302 리디렉션이 발생합니다. current_biz_user가 자신이 만든 이벤트를 볼 수 있도록 허용하고 공개 이벤트를 위해 새로운 이벤트를 색인에 게시 할 수 있도록 허용하려면이 문제를 해결할 수 있도록 도와주세요. 고맙습니다.컨트롤러 Rails 4의 새 작업으로 리디렉션 받기
다음은 내 경로입니다.
events GET /events(.:format) events#index
POST /events(.:format) events#create
new_event GET /events/new(.:format) events#new
event GET /events/:id(.:format) events#show
PATCH /events/:id(.:format) events#update
PUT /events/:id(.:format) events#update
class EventsController < ApplicationController
before_filter :set_search
before_action :set_event, only: [:show, :update, :create, :new]
respond_to :html, :json
def index
@events = Event.all.order("created_at DESC")
@search = Event.search(params[:q])
@events = @search.result
@search.build_condition if @search.conditions.empty?
@search.build_sort if @search.sorts.empty?
respond_with(@events)
end
def show
@event = Event.friendly.find(params[:id])
@eventcreator = BizUser.find(@event.biz_user_id)
respond_with(@event)
end
def new
@event = Event.new
end
def edit
@event = Event.find(params[:id])
end
def create
@event = Event.new(event_params)
@event.biz_user = current_user
respond_to do |format|
if @event.save
format.html { redirect_to @event, notice: 'Event was successfully created.' }
format.json { render :show, status: :created, location: @event }
else
format.html { render :new }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
def update
respond_to do |format|
if @event.update(event_params)
format.html { redirect_to @event, notice: 'Event was successfully updated.' }
format.json { render :show, status: :ok, location: @event }
else
format.html { render :edit }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
private
def set_event
@event = Event.find(params[:id])
end
def set_search
@q = Event.search(params[:q])
end
def event_params
params.require(:event).permit(:title, :description, :city, :state, :from_time, :to_time, :date, :eventlogo, :manager, :managerdescription, :reservation, :eventtype, :theme, :capacity, :passname, :private, :alcohol, :ticketquantity, :options, :price, :category, :biz_user_id)
end
end
'update'와'create' 메소드도 보여줄 수 있겠습니까? 기대하는 결과를 내지 못하고 정확히 무엇을하고 있습니까? 이것이 문제라고 생각하지 않지만'index' 메소드에서 @events 변수를 3 번 겹쳐 쓰면 @events를 설정하는 첫 번째 줄을 삭제할 수 있습니다. 또는 둘 다 필요하면 다른 변수 이름을 사용하십시오. – sockmonk
줄 3을 이벤트에서 findevents = @ search.result로 변경했습니다. 현재, 검색 엔진 메커니즘을 제공하기 위해 러스트락 보석을 사용하고 있습니다. 새로운 작업을 만들고 이벤트/색인 페이지에 액세스하는 것을 차단합니다. 즉, 이벤트 만 검색 할 수는 있지만 검색 쿼리에 아무것도 제공하지 않는 이벤트의 인덱스 페이지에 연결할 수 없습니다. 이상한. – user3646743