У меня очень небольшое приложение, которое я создаю в рельсах. Это простое приложение для отслеживания веса. Я создал модель User
, у которой есть страница для регистрации. Как только пользователь входит в систему, они перенаправляются на вид user#show
. Вот контроллер пользователя до сих пор:Можно добавить форму в другой вид модели в рельсах
class UsersController < ApplicationController
before_filter :authenticate_user!
def show
@user = current_user
end
end
У меня есть 2 другие модели один является Weight
модели, а другой Goal
модели, я хотел бы это так, что, когда пользователь подписывает они представлены с просьбой экрана их ввести текущий вес и вес цели, эта информация будет храниться в моделях Weight
и Goal
соответственно вместе с зарегистрированным ID пользователя.
До сих пор я был в состоянии добавить форму в шаблон пользователя show.html.erb
:
<%= form_for @user do |f| %>
<%= f.fields_for :weight do |builder| %>
<fieldset>
<%= f.label :value, "Current weight" %><br />
<%= f.text_field :value %><br />
</fieldset>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Что делает форму правильно, но когда я затем нажмите на кнопку отправки он просто переходит на страницу с ошибкой, говоря Unknown action- The action 'update' could not be found for UsersController
, Я предполагаю, что я делаю что-то неправильно, так как он должен попробовать и отправить действие create.
Есть ли кто-нибудь, кто мог бы помочь мне вернуться по правильному пути, Im очень много noob в рельсах.
О, я так понимаю, как бы лучше вставить значение веса и цели в их соответствующие таблицы? –
Я просто добавил в этом коде и получил следующее сообщение об ошибке: '{ "utf8"=> "✓", "_method"=> "положить", "authenticity_token"=> "ciFbrD782Q + fS9h8gSZxHD2fEBlWoTVFTT2asHhcpPQ =", " user "=> {" weight "=> {" value "=>" 1.5 "}}, « commit »=>« Обновить пользователя », « id »=>« 1 »}' Кажется, пытаясь сохранить значение ценности весовой модели в пользовательской таблице. Как я могу сделать это так, чтобы он сохранял свою собственную таблицу. –
как @Khaled сказал, вы создаете переменную экземпляра @user для сохранения в таблице пользователя. То же самое можно сделать с остальными: Weight, Goal и т. Д. Я бы сделал это с использованием пользовательского хеша, а именно: '@ weight.update_attributes ({: value1 => params [: user] [: value1] ,: value2 => params [: пользователь] [: значение2]}) ' – kasperite