2010-06-22 4 views
0

1-й вопрос:Rails подмости с нуля имеет свои недостатки

Я пытаюсь сделать создать метод работы, но это, кажется, что моя форма отправки данных innapropriately к моей БД. Это server.log:

Processing Admin::AdminWysisController#create (for ::1 at 2010-06-22 13:43:58) [POST] 
Parameters: {"commit"=>"save", "action"=>"create", "authenticity_token"=>"P8pW7GnSNr7RZcxFcejpfsu9YCX7z8hO0DJPH3rYalQ=", "controller"=>"admin/admin_wysis", "admin_wysi"=>{"post_published"=>"<p>\r\n\tstinky</p>\r\n"}} 
User Columns (2.0ms) SHOW FIELDS FROM `users` 
User Load (0.3ms) SELECT * FROM `users` WHERE (`users`.`id` = '1') LIMIT 1 
SQL (0.1ms) BEGIN 
User Update (0.2ms) UPDATE `users` SET `updated_at` = '2010-06-22 17:43:58', `perishable_token` = 'XMxt1yi5_4JEwPP-21GO', `last_request_at` = '2010-06-22 17:43:58' WHERE `id` = 1 
SQL (0.4ms) COMMIT 
AdminWysi Columns (1.0ms) SHOW FIELDS FROM `admin_wysis` 
SQL (0.1ms) BEGIN 
AdminWysi Create (0.1ms) INSERT INTO `admin_wysis` (`post_published`) VALUES(NULL) 
SQL (0.4ms) COMMIT 
Redirected to http://localhost:3000/admin/admin_wysi 
Completed in 139ms (DB: 5) | 302 Found [http://localhost/admin/admin_wysi] 
SQL (0.1ms) SET NAMES 'utf8' 
SQL (0.1ms) SET SQL_AUTO_IS_NULL=0 

Наиболее важная часть этого заявления это одна:

"admin_wysi"=>{"post_published"=>"<p>\r\n\tasdfasdfasd</p>\r\n"} 

Что должно быть просто:

"post_published"=> "<p>\r\n\tasdfasdfasd</p>\r\n" 

Давайте посмотрим на мой взгляд, ..

- form_for @admin_wysi, :url => admin_admin_wysi_path do |f| 
    = f.error_messages :header_message => FORM_ERROR_HEADER_MESSAGE, :message => FORM_ERROR_MESSAGE 
    = f.cktext_area :post_published, :cols => '70', :rows => '30', :width => '555px', :height => '240px', :toolbar => 'HQ' 
    %br/ 
.grid_2.prefix_5.align_right 
    = f.submit 'save', {:class => 'button'} 

Ее e является моим контроллером: D

def new 
@admin_wysi = AdminWysi.new 
end 

def create 
    @admin_wysi = AdminWysi.new(params[:admin_wysi]) 
    if @admin_wysi.save 
    redirect_to admin_admin_wysi_path 
end 
end 

Любая идея, что это может случиться?

второй вопрос
Странно, как это, когда он спасает, он перенаправляет меня website.com/wysi НЕ website.com/wysis/. Последний - рабочая ссылка, предыдущая не является реальной ссылкой.

Мой routes.rb выглядит следующим образом:

map.namespace :admin do |admin| 
    admin.resource :admin_wysi 
end 

ответ

0

В вы получаете PARAMS то, что ожидается в приложении Rails. В противном случае не было бы хорошего способа доступа только к тем параметрам, которые являются частью объекта для сохранения (например, для отказа от пар ключей и значений commit, action и т. Д.). Какие ошибки вы получаете от действия create? Если он перенаправляет вас, кажется, что он, вероятно, не получает ошибок при сохранении.

Что касается вашей проблемы маршрутизации, то причина, по которой вы получаете единственное (wysi), а не множественное (wysis), заключается в том, что вы используете map.resource вместо map.resources. Если вы измените это, я считаю, что он должен устранить проблему маршрутизации.

+0

Большое спасибо за ваш ответ. Я сделал это множественным числом. Не беспокойтесь, это помогло. Кроме того, выше я включил полный оператор SQL. Вы можете видеть, что ошибок нет, и тот, который я изначально был там, фактически является приемлемым способом добавления данных. Обратите внимание, что в заявлении эта строка <<<<< INSERT INTO 'admin_wysis' (' post_published') VALUES (NULL) >>>> Интересно? Не знаю, что это значит. В любом случае, большое спасибо. – Trip

+0

Haha..why будет ли рельсы по умолчанию сделать ячейку таблицы нулевой? – Trip

+0

Оказывается, у меня был attr_accessor: post_published в моей модели, который сделал это так, чтобы все, что было записано в это поле, закончилось пустым. – Trip

 Смежные вопросы

  • Нет связанных вопросов^_^