В моем index.html я использую ‹%= render 'rates/rate_form'%>, чтобы отобразить форму ставки, а форма - ajax. Содержимое _rate_form:
`<%= form_for [@image, Rate.new], :remote=>true do |f| %>
<input type="hidden" name="image_id" value="<%= @image.id%>"/>
<button type="submit"> Rate</button>
<% end %>`
В моем контроллере ставок я определил один фильтр before_filter, только вошедший в систему может создать скорость. class RatesController ‹ ApplicationController before_filter :authenticate, :only=> :create
def create
@rate=Rate.new(:rate=>1)
respond_to do |format|
if @rate.save
format.html { redirect_to(@rate) }
format.js
end
end
end
в моем файле session_helper:
def authenticate
redirect_to signin_url unless signed_in?
end
Журнал:
Redirected to http://localhost:3000/signin
Filter chain halted as :authenticate rendered or redirected
Completed 302 Found in 3ms (ActiveRecord: 0.7ms)
Started GET "/signin" for 127.0.0.1 at 2013-04-28 12:36:56 +0300
Processing by SessionsController#new as JS
Rendered sessions/new.html.erb within layouts/application (1.3ms)
User Load (0.9ms) SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT 1
Rendered sessions/new.html.erb (1.2ms)
Rendered layouts/_nav.html.erb (4.8ms)
Rendered layouts/_search.html.erb (0.6ms)
Rendered layouts/_notice_div.html.erb (0.1ms)
Completed 200 OK in 26ms (Views: 24.3ms | ActiveRecord: 0.9ms)
Когда я нажимаю кнопку «Оценить», в консоли появляется ошибка: Цепочка фильтров остановлена, так как :deny_access отображается или перенаправляется. У вас есть идеи, как это решить? Большое спасибо!