Добрый день, я пытаюсь обновить рейтинг пользователя с помощью form_for, чтобы заполнить текстовое поле его текущего рейтинга, а затем обновить его до введенного пользователем значения. Пока что все кажется простым, но что-то не очень хорошо, и я получаю эту ошибку. Помощь будет высоко оценена!Параметр отсутствует или значение пуст ROR
контроллер пользователя:
def edit_rating
@ad = Ad.find(params[:id])
@user = User.find(@ad.user_id)
if @user.update_attributes(user_params)
flash[:notice] = "User Updated Successfully"
redirect_to(:action => 'index')
else
end
end
def user_params
params.require(:user).permit(:firstName, :lastName, :email , :password , :location, :rating)
end
edit_rating вид:
<h2>
Edit User Rating
</h2>
<h4>
Name: <%= @user.firstName %>
</h4>
<p>
Current Rating: <%= @user.rating%>
</p>
<%=form_for(:user , :url => {:action => 'edit_rating' , :id => @user.id}) do |f| %>
<p>
Updated Rating: <%= f.text_field(:rating) %>
</p>
<%= submit_tag("Update Rating") %>
<% end%>
Это ошибка, что я получаю.
Вы хотите сказать, что вам требуется ПгвЬЫате, LastName, адрес электронной почты, пароль, место жительства и рейтинг, но вы передаете только идентификатор –
. Это происходит по запросу POST или GET? Это происходит, когда вы отправляете форму или просто просматриваете форму? Параметры на снимке экрана показывают, что для ': user' нет параметров, поэтому сообщение об ошибке. Вам нужно два разных действия контроллера для формы: один для просмотра формы (HTTP GET), а другой для обработки формы (HTTP POST). –
На данный момент он находится при просмотре формы. –