У меня сейчас очень простая модель "Купон".Мне неожиданно стало интересно добавить еще два поля, «redeem_code» и «redeemed» в модель по понятным причинам.
Я бы хотел, чтобы торговец выкупил купон на основе кода.
Самый простой подход, который я могу придумать, это сделать что-то вроде этого:
def redeem
#renders the page
end
def redeem_post
redeem_code = params[:redeem_code]
deal = Deal.find_by_redeem_code(redeem_code)
if deal.nil?
# BUG: Somehow here you will be logged out
redirect_to deals_path
else
if deal.update_attribute(:redeemed, true)
redirect_to deals_path
end
end
end
Насколько мне известно, rails на самом деле не поддерживает non restful интерфейсы.Вчера вечером я попытался найти помощников по форме, но ничего не смог найти, поэтому просто добавил что-то очень быстрое:
<form action="<%= deals_redeem_post_path %>" method="post">
<table>
<tr>
<th> Code: </th>
<td> <input type="text" name="redeem_code" /> </td>
</tr>
<tr>
<th></th>
<td> <input type="submit" text="Submit" /> </td>
</tr>
</table>
</form>
Я использую устройство.Ошибка, с которой я сталкиваюсь сейчас, заключается в том, что когда мой пользователь отправляет эту форму, он / она автоматически выходит из системы.
Есть идеи, как я могу это исправить или реализовать это более элегантно?