redirect_to :controller=>'groups',:action=>'invite'
но я получил ошибку, потому что redirect_to посылает метод GET. Я хочу изменить этот метод на "POST", нет опции метода: redirect_to, что я буду делать? Могу ли я сделать это без redirect_to.
Edit:
У меня это в группах /invite.html.erb
<%= link_to "Send invite", group_members_path(:group_member=>{:user_id=>friendship.friend.id, :group_id=>@group.id,:sender_id=>current_user.id,:status=>"requested"}), :method => :post %>
Этот вызов вызова создает действие в контроллере group_members, и после создания действия я хочу показать groups/invite.html.erb с group_id (я имею в виду, после того, как будут созданы кнопки "Отправить приглашение", будут отображаться group_members, а затем текущая страница будет показано) следующим образом:
redirect_to :controller=>'groups',:action=>'invite',:group_id=>@group_member.group_id
После redirect_to запросить это с помощью метода GET, он вызывает действие show в группе и принимает приглашение как id и дает эту ошибку
Couldn't find Group with ID=invite
Мое приглашение в группе
def invite
@friendships = current_user.friendships.find(:all,:conditions=>"status='accepted'")
@requested_friendships=current_user.requested_friendships.find(:all,:conditions=>"status='accepted'")
@group=Group.find(params[:group_id])
end
Решение: мне нужно перенаправить это методом POST, но я не смог найти способ.
Уродливое решение: я решил эту проблему, которую я не предпочитаю. Я все еще жду, если у вас есть решение честно.
Мое решение добавляет маршрут для приглашения, чтобы избавиться от ошибки "Не удалось найти группу с идентификатором ID = приглашение".
в routes.rb
map.connect "/invite",:controller=>'groups',:action=>'invite'
в создании действия
redirect_to "/invite?group_id=#{@group_member.group_id}"
Я назову это решение на языке "amele yontemi" на английском языке "ручной рабочий метод" (я думаю).