Size: a a a

Эликсир и Вунш

2017 April 15

RA

Rinat Akhtamov in Эликсир и Вунш
1) test updates chosen resource and redirects when data is valid (Pxblog.UserControllerTest)
    test/controllers/user_controller_test.exs:49
    ** (FunctionClauseError) no function clause matching in Plug.Conn.Status.code/1
    stacktrace:
      (plug) lib/plug/conn/status.ex:112: Plug.Conn.Status.code(:updated)
      (plug) lib/plug/conn.ex:373: Plug.Conn.put_status/2
      (pxblog) web/controllers/user_controller.ex:48: Pxblog.UserController.update/2
      (pxblog) web/controllers/user_controller.ex:1: Pxblog.UserController.action/2
      (pxblog) web/controllers/user_controller.ex:1: Pxblog.UserController.phoenix_controller_pipeline/2
      (pxblog) lib/pxblog/endpoint.ex:1: Pxblog.Endpoint.instrument/4
      (pxblog) lib/phoenix/router.ex:261: Pxblog.Router.dispatch/2
      (pxblog) web/router.ex:1: Pxblog.Router.do_call/2
      (pxblog) lib/pxblog/endpoint.ex:1: Pxblog.Endpoint.phoenix_pipeline/1
      (pxblog) lib/pxblog/endpoint.ex:1: Pxblog.Endpoint.call/2
      (phoenix) lib/phoenix/test/conn_test.ex:224: Phoenix.ConnTest.dispatch/5
      test/controllers/user_controller_test.exs:51: (test)
источник

ع

عاصم بن حارث in Эликсир и Вунш
эммм... чет я не сообразил.
источник

ع

عاصم بن حارث in Эликсир и Вунш
источник

RA

Rinat Akhtamov in Эликсир и Вунш
понял, спасибо
источник

ع

عاصم بن حارث in Эликсир и Вунш
хорошо, когда лог есть, я подзатупил, по логу видно. )))
пересмотрел код твоего контроллера...
источник

ME

Marsel Etsamoe in Эликсир и Вунш
друзья, нет ли у кого опыта работы с canary? а точнее непосредственно с опцией not_found_handler
источник
2017 April 17

ET

Evgeniy Troynov in Эликсир и Вунш
Что именно интересует по данной опции ?
источник

ME

Marsel Etsamoe in Эликсир и Вунш
не пойму как ее заставить работать
источник

ME

Marsel Etsamoe in Эликсир и Вунш
ситуация такая что в случае когда ресурс не найден, он не срабатывает
источник

ME

Marsel Etsamoe in Эликсир и Вунш
если сделать такую функцию:
  def can?(user, action, operation = %Operation{})  when action in [:show, :update, :delete] do
   IO.puts "check ability for operation"
   if operation.user_id == user.id do
     IO.puts "success"
     true
   else
     false
   end
 end
источник

ME

Marsel Etsamoe in Эликсир и Вунш
то при ненайденном ресурсе будет ошибка
 (FunctionClauseError) no function clause matching in Canada.Can.MyApp.User.can?/3
источник

ME

Marsel Etsamoe in Эликсир и Вунш
если же добавлю такое:
  def can?(user, action, nil) do
   IO.puts "check ability for nil"
   false
 end
источник

ME

Marsel Etsamoe in Эликсир и Вунш
то вместо not_found_handler будет срабатывать handle_unauthorized
источник
2017 April 18

A

AMar4enko in Эликсир и Вунш
Может вместо nil поставить _ ?
источник

MS

Mike Shirokowsky in Эликсир и Вунш
_operation
источник

A

AMar4enko in Эликсир и Вунш
В целом, если почитать исходники
https://github.com/cpjk/canary/blob/master/lib/canary/plugs.ex#L268
источник

A

AMar4enko in Эликсир и Вунш
То видно, что если conn в статусе :sent, то хэндлер не сработает
источник

A

AMar4enko in Эликсир и Вунш
Ну и я бы посоветовал iex-ом подебажить
источник

ME

Marsel Etsamoe in Эликсир и Вунш
AMar4enko
Может вместо nil поставить _ ?
с заменой nil на _ или _operation результат тот же
источник

A

AMar4enko in Эликсир и Вунш
Проверь, не отправляешь ли ты в conn ничего в процессе
источник