Ilnar25
@Ilnar25

Как прогнать массив через routes.rb в Rails4?

Не могу определить в чём проблема в запросе на базу данных, ошибка в роутере или в вызове хелпера? По логам подозреваю на роутер. Помогите!
Вот пример:
/-/-/-/-/-/.html.haml
...
- all_users_id = message_incoming | message_outgoing
- all_users_id.delete(user.id)
%h4= link_to "Мои контакты", all_users_path(my_users_id: all_users_id)
______________________________________________________________________
routes.rb
get 'messages/all_my_users/:my_users_id', to: 'messages#all_my_users', as: 'all_users'
_______________________________________________________________________
messages_controller.rb
def all_my_users
@my_users = User.where("id = ?", params[:my_users_id])
end
______________________________________________________________________
Started GET "/messages/all_my_users/7%2F8" for 127.0.0.1 at 2015-11-05 02:02:23 +0300
Processing by MessagesController#all_my_users as HTML
Parameters: {"my_users_id"=>"7/8"}
User Load (2.8ms) SELECT "users".* FROM "users" WHERE (id = '7/8')
PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "7/8"
LINE 1: SELECT "users".* FROM "users" WHERE (id = '7/8')
^
: SELECT "users".* FROM "users" WHERE (id = '7/8')
Rendered messages/all_my_users.html.haml within layouts/application (4.5ms)
Completed 500 Internal Server Error in 8ms (ActiveRecord: 2.8ms)

ActionView::Template::Error (PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "7/8"
LINE 1: SELECT "users".* FROM "users" WHERE (id = '7/8')
^
: SELECT "users".* FROM "users" WHERE (id = '7/8')):
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 3
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
для оформления кода есть специальный тег

А по поду вашей ошибки вам же ясно написано - ERROR: invalid input syntax for integer: "7/8"
Ответ написан
Комментировать
@caution
7/8 ? :)
Ответ написан
Комментировать
@vsuhachev
Вы в URLe массив не сможете передать без дополнительных телодвижений

обычно в Рельсах массивы передаются в параметрах как-то так:
http://myurl?array_name[]=7&array_name[]=8
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы