Я создаю приложение на рынке (рельсы 4), где продавцы могут перечислить предметы для продажи. У меня есть профиль профиля продавца, где пользователи вводят некоторые сведения об их бренде.Rails 4 - Обновление спецификаций в модели
Я не могу получить запись для обновления с помощью пользовательских входов. Форма отправляется без какой-либо ошибки, но модель не обновляется.
Код ниже. Демонстрация на http://mktdemo.herokuapp.com/seller/18 (логин: [email protected]/PWD: test1234)
маршрут:
match "/seller/:id", to: "users#sellerprofile", via: [:get, :put], as: :sellerprofile
моя форма:
<%= form_for(@user, url: sellerprofile_path(id: current_user.id), method: :put, html: { :class => 'edit_profile', :multipart => true }) do |f| %>
<div class="form-group">
<%= f.label :your_story %><i> (required)</i>
<%= f.text_area :profilestory, class:"form-control" %>
</div>
<div class="form-group">
<%= f.label :profile_image %><i> (required)</i>
<%= f.file_field :profileimage, class:"form-control" %>
</div>
<div class="form-group">
<%= f.submit class:"btn btn-primary" %>
</div>
<% end %>
user_controller:
def sellerprofile
@user = User.find(params[:id])
@user.update_attributes(:profilestory => params[:profilestory], :profileimage => params[:profileimage])
end
Для Я использую paperclip и имею has_attached ... код в моей модели.
UPDATE: Вот мое user_params в контроллере:
def user_params
params.require(:user).permit(:bankaccname, :profileimage, :profilestory)
end
Когда я использую @user.update(user_params)
в методе sellerprofile, я получаю params :user not found error
. Эта ошибка возникает при загрузке формы (не на отправке). Ошибка в строке params.require(:user)
UPDATE 2: Вот метод обновления. Я использую это для другой формы, которая берет некоторые данные банковского счета, поэтому я не уверен, могу ли я изменить это для формы профиля.
def update
@user.attributes = user_params
Stripe.api_key = ENV["STRIPE_API_KEY"]
token = params[:stripeToken]
recipient = Stripe::Recipient.create(
:name => user_params["bankaccname"],
:type => "individual",
:bank_account => token
)
@user.recipient = recipient.id
respond_to do |format|
if @user.save
format.html { redirect_to edit_user_url, notice: 'Your account was successfully updated.' }
else
format.html { render action: 'edit' }
end
end
end
Что версия Рельсы в вашем приложении? Если это> = 4, тогда вам нужно использовать сильные параметры. – Mandeep
Rails 4. У меня есть user_params, но когда я использую update (user_params), я получаю сообщение об ошибке params: user not found. – Moosa
Можете ли вы разместить свой код, регистрироваться при отправке формы и полной ошибке? – Mandeep