У меня проблема с тем, что при публикации значений формы для действия create
значения не присваиваются новой модели.
Например -
У меня есть частичная форма, _form.html.erb
в views/groups/
:
<%= form_for @group, :html => { :multipart => true } do |f| %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :website %><br />
<%= f.text_field :website %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description %>
</p>
<p>
<%= f.label :image %><br />
<%= f.file_field :image %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
Это отображается в views/groups/new.html.erb
:
<h1>Group#new</h1>
<%= render :partial => "form" %>
Мое new
действие выглядит так:
def new
@group = Group.new
end
И мое действие создания выглядит так:
def create
#raise params.inspect
@group = Group.new(params[:group])
#raise @group.inspect
if @group.save
flash[:message] = "Group Created!"
redirect_to groups_path
else
flash[:message] = "Sorry, there are errors in the form"
render :new
end
end
Если я raise params.inspect
, я получаю это:
{"utf8"=>"✓", "authenticity_token"=>"cVW7BgMKFU1z3QlyCOGq5y2t7IcKcsatVsXDDE1069g=", "group"=>{"name"=>"testname", "website"=>"testweb", "description"=>"testdesc"}, "commit"=>"Create Group", "action"=>"cr
... который, похоже, имеет хэш-значения my: group.
Если я попытаюсь присвоить его, проверьте следующее:
@group = Group.new(params[:group])
raise @group.inspect
Я получаю:
#<Group id: nil, name: nil, description: nil, website: nil, image: nil, created_at: nil, updated_at: nil>
Что мне здесь не хватает? У меня есть 2 других контроллера, структурированных очень похожим образом, но я не уверен, что я здесь сделал неправильно -
Спасибо!