Я создаю небольшое приложение в Rails 3.2.13, используя bootstrap-sass gem. У меня следующая ситуация:рельсы параметры сообщения показать, но не вставлено
Мой «sign_up» контроллер имеет и «индекс» действие, которое создает пользователя, как это:
#sign_up controller
def index
@user = User.new
end
Теперь в моем index.html.erb я иметь вид:
# sign_up controller => index.html.erb
<%= form_for @user, :html => {:class => 'form-horizontal'} do |f| %>
<div class = 'control-group'>
<%= f.label :username, :html => {:class => 'control-label'} %>
<%= text_field_tag :username, nil, :placeholder => 'Username' %>
</div>
<div class = 'control-group'>
<%= f.label :email, :html => {:class => 'control-label'} %>
<%= email_field_tag :email, nil, :placeholder => 'Email' %>
</div>
<div class = 'control-group'>
<%= f.label :password, :html => {:class => 'control-label'} %>
<%= password_field_tag :password, nil, :placeholder => 'Password' %>
</div>
<div class = 'control-group'>
<%= f.label :confirm_password, :html => {:class => 'control-label'} %>
<%= password_field_tag :confirm_password, nil, :placeholder => 'Confirm' %>
</div>
<%= f.submit 'Create', :class => 'btn btn-primary'%>
Это POST к users_controller, вызывая создать действие:
# users controller
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
Проблема: @user сохраняется, но параметры теряются! В журнале консоли:
Started POST "/users" for 127.0.0.1 at 2013-05-29 12:14:47 -0300
Обработка по UsersController # создать в HTML Параметры: { "utf8" => "✓", "authenticity_token" => "wI5sNQV/lkn8GtYv5YkRLZ6HzxPg5MtoVXuarLulv30 =", "имя пользователя" => «nonickname», «email» => «[email protected]», «password» => «[FILTERED]», «confirm_password» => «[FILTERED]», «commit» => «Create»} (0.1ms) начать транзакцию SQL (0.9ms) INSERT INTO «пользователи» («admin», «created_at», «email», «password_hash», «password_salt», «updated_at», «username») VALUES (?,? [? admin ", ноль], [" created_at ", ср, 29 мая 2013 15:14:47 UTC +00: 00], [" email ", nil], ["password_hash", nil], ["password_salt", nil], ["updated_at", ср, 29 мая 2013 15:14:47 UTC +00: 00], ["username", nil]] (148.9ms) совершить транзакцию ...
Почему это происходит, и как я могу это исправить? Я знаю, что форма должна быть доменом users_controller (я планирую это исправить), но это, похоже, не проблема!
Спасибо за помощь!
Хм ... я вижу. Спасибо, что показал мне это! – Fernando
см. Обновление, как построить форму, используя f, не требуя пользователя для каждого поля при использовании field_tag – rmagnum2002