redirect_to :controller=>'groups',:action=>'invite'
но я получил ошибку, потому что redirect_to для отправки метода GET Я хочу изменить этот метод на 'POST', в redirect_to нет опции метода, что мне делать? Могу ли я сделать это без redirect_to.
Edit:
У меня есть это в groups / 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 / пригласить.html.erb с group_id (я имею в виду, что после нажатия кнопки «отправить приглашение» будет создана группа, и тогда будет отображена текущая страница. показано) вот так:
redirect_to :controller=>'groups',:action=>'invite',:group_id=>@group_member.group_id
После того, как redirect_to запрашивает это с помощью метода GET, он вызывает show action в группе, принимает приглашение в качестве идентификатора и выдает эту ошибку
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, но я не смог найти способ.
Гадкое решение: я решил эту проблему, которую я не предпочитаю. Я все еще жду, если у вас будет честное решение.
Мое решение - добавить маршрут для приглашения, чтобы избавиться от ошибки «Не удалось найти группу с идентификатором = приглашение».
в rout.rb
map.connect "/invite",:controller=>'groups',:action=>'invite'
в действии создания
redirect_to "/invite?group_id=#{@group_member.group_id}"
Я называю это решение на языке май 'amele yontemi' на английском языке 'метод ручного труда' (я думаю).