Почему бы не войти в эту форму?Рельсы: Входы форм не сохраняются после отправки
new.html.erb
<%= form_for [@requestable, @request] do |f| %>
<%= f.label :status %>
<%= f.text_field :status, rows: 8 %>
<%= f.submit "Request", :class => 'btn'%>
<% end %>
requests_controller.rb
class RequestsController < ApplicationController
before_filter :load_requestable
def index
@requests = @requestable.requests
end
def new
@request = @requestable.requests.new
end
def create
@request = @requestable.requests.new(params[:status])
if @request.save
redirect_to [@requestable, :requests], notice: "Request sent."
else
render :new
end
end
private
def load_requestable
klass = [Company, Profile].detect { |c| params["#{c.name.underscore}_id"]}
@requestable = klass.find(params["#{klass.name.underscore}_id"])
end
end
мой контроллер основан на этом
https://github.com/railscasts/154-polymorphic-association-revised/blob/master/blog-after/app/controllers/comments_controller.rb
request.rb
класс Request < ActiveRecord :: База
attr_accessible :status
belongs_to :requestable , polymorphic: true
belongs_to :profile
validates :status, presence: true
end
Это производится моим Debuger
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: ✓
authenticity_token: /0H2k89HN4JVXBPsoFWen5rUfx2xr4p5hr1uDSQVlcA=
request: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
status: pending
commit: Request
action: create
controller: requests
company_id: '1'
Просто попробовал, чтобы он ничего не изменил. Я добавил ссылку на контроллер, на котором я основывал свои кодировки. –
Пожалуйста, посмотрите, что находится в хеше params после публикации формы. Вам нужно ответить на эти вопросы: Получает ли информация из формы в хэш-код params? Получает ли он из хэша params в новый объект Request? Получает ли он от нового объекта Request в базе данных? – Iain
Я добавил вывод отладчика. Я могу заставить все это работать на консоли, поэтому я склоняюсь к форме, не передавая информацию в хэши params. –