0

Почему бы не войти в эту форму?Рельсы: Входы форм не сохраняются после отправки

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' 

ответ

1

Взгляните на то, что в вашем Params хэш. Поле состояния, вероятно, находится примерно в params[:request][:status]. Предполагая, что стандартный файл activerecord-y, вы хотите передать хэш для всего объекта запроса .new.

+0

Просто попробовал, чтобы он ничего не изменил. Я добавил ссылку на контроллер, на котором я основывал свои кодировки. –

+0

Пожалуйста, посмотрите, что находится в хеше params после публикации формы. Вам нужно ответить на эти вопросы: Получает ли информация из формы в хэш-код params? Получает ли он из хэша params в новый объект Request? Получает ли он от нового объекта Request в базе данных? – Iain

+0

Я добавил вывод отладчика. Я могу заставить все это работать на консоли, поэтому я склоняюсь к форме, не передавая информацию в хэши params. –