Я использовал Rails4.2.8
, а база данных - Mysql
.
В моих таблицах базы данных много columns
: name
, phone
, email
, address
и так далее.
Когда пользователь изменит name
и запишет время, когда произошло изменение, скажите ему: «Вы можете изменить свое имя через 30 дней».
Как я могу получить изменение пользователя во время?
Такой как эта картинка:
![The example](https://i.stack.imgur.com/6Pkz5.png)
В моей базе данных уже есть created_at
и updated_at
, но я обнаружил, что когда яобновите пользовательскую информацию (не только name
), updated_at
изменится, но теперь я хочу, чтобы при изменении пользователя name
я мог получить запись времени, когда произошли изменения. Это часть моей базы данных:
![some of database](https://i.stack.imgur.com/ImlqK.png)
++++++++++++ **************************************** +++++++++++++++
Я пытался с @DickieBOy и изменить некоторыекодов, но когда я обновляю информацию о пользователе, я получаю ошибку No route matches [POST]
?Где я ошибся?Пожалуйста, помогите мне.
Некоторые коды моего user.rb
:
validate :name_change
def name_change
if name_changed?
self.name_updated_at = Time.now
end
end
extend FriendlyId
friendly_id :name, :use => [:slugged, :finders]
def should_generate_new_friendly_id?
name_changed?
end
Некоторые коды моего user_helper.rb
:
def edit_day
edit_days = (@user.name_updated_at + 30.days).to_i
ctime = Time.now.to_i
st = (edit_days - ctime) / 1.day
if st > 0
return st
else
return 0
end
end
И некоторые коды моего _form.html.erb
:
<%= form_for @user do |f| %>
<div class="user_profile-infoEdit">
<%= f.label :name, "name", class: "userLabel " %>
<%= f.text_field :name, class: "userNameEdit" %>
<br>
<span class="text-gray fs12">30days can change one time
<span>Have
<span id="editDays"><%= edit_day %></span>
days can you change your name
</span>
</span>
</div>
<% end %>
Я обнаружил, что с def edit_day
, когда я обновляю пользователя, всегда будет the No route matches [POST] "/users/udaskffa"
неправильно?Что я должен делать?Благодаря.