2016-11-26 1 views
0

код контроллера:Данные не поступают в базу данных, и именно по этой причине она не маршрутизирует идентификатор этих данных ввода в ruby ​​on rails?

class ItemsController < ApplicationController 

    def show 
    end 

    def new 
    end 

    def create 
     @item = Item.new(item_params) 

     @item.save 
     redirect_to @item 
    end 

    private 
    def item_params 
    params.require(:item).permit(:mobile, :company) 
    end 

end 

new.html.erb код

<%= form_for :item , url: items_path do |f| %> 
    <p> 
    <%= f.label :mobile %><br> 
    <%= f.text_field :mobile %> 
    </p> 

    <p> 
    <%= f.label :company %><br> 
    <%= f.text_field :company %> 
    </p> 

    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 

Еще одна вещь, я не думаю, что я использую правильные параметры в частном способе требуется. Если это так, то дайте мне знать, что я должен использовать?

+0

Вы не должны предполагать, что '@item.save works'. Только «redirect_to @ item», если сохранение было успешным, обычно применяется для «рендеринга нового», если оно не выполнено, и отображает сообщения об ошибках в файле new.html.erb - тогда у вас может быть лучшая идея о том, почему это не удалось. – David

+0

Любая причина, по которой вы используете символ в отличие от переменной экземпляра в объявлении формы для 'item'? – David

+0

направляющие рельсов используют переменные экземпляра, и я следую за ними ....... в справочном сайте rails, они использовали его аналогичным образом таким образом ... Я только что изменил статью: статья к этому: item. – Thinkerzz

ответ

0

1.) напишите @item = Item.new(item_params) в новом действии.

2.) измените имя своего файла с New.html.erb на new.html.erb , если это не решит вашу проблему, возможно, вы неправильно указали имена столбцов. Надеюсь, это будет полезно

+0

в пункте 1), почему бы вам это сделать? ничего не отправлено в новое действие. – David