У меня RoR 4.2.0beta. (Хотя это не имеет значения, так как это проблема начала).. Ошибка формы/контроллера
Моя форма не включает в базу данных «propuneres», которые я создаю через нее. И в результате они не отображаются на индексной странице, когда я перенаправляюсь на нее. Они появляются, когда я создаю их через консоль.
class PropuneresController < ApplicationController
before_action :prop_params
def new
@user = User.find(params[:user_id])
@propunere = @user.propuneres.build
end
def create
@user= User.find(params[:user_id])
@propunere = @user.propuneres.new(params[:prop_params])
@propunere.save
if @propunere.empty?
render 'new'
else
redirect_to user_propuneres_path
end
end
def index
@user = User.find(params[:user_id])
@propunere = @user.propuneres(params[:prop_params])
end
private
def prop_params
params.require(:propunere).permit(:titlu, :body)
end
end
new.html.erb
<h2> Propunere Nouă </h2>
<%= form_for @propunere do |f| %>
<ul>
<% @propunere.errors.full_messages.each do |error| %>
<li><%= error %></li>
<% end %>
</ul>
<p>
<%= f.label :titlu %><br />
<%= f.text_field :titlu %>
</p>
<p>
<%= f.label :body %><br />
<%= f.text_area :body %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
index.html.erb
<h2> Propuneri: </h2>
<% @propunere.each do |p| %>
<%= p.titlu %>
<%= p.body %>
<% end %>
Я настоятельно рекомендую назвать классы/методы/переменные и т. Д. На английском языке. Что еще хуже, вы смешали английское имя класса 'User' с румынским именем класса« Propunere »в одном приложении. –
Я буду помнить об этом. Правильно, это не похоже на того, кто не понимает, что английский поглядит на мой код. Я сделал это бессмысленно недоступным. – user3260475