Форум программистов, компьютерный форум, киберфорум
Наши страницы
Ruby on Rails
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
1

Post запрос в хеш модели

11.05.2015, 12:08. Просмотров 529. Ответов 3
Метки нет (Все метки)

Есть форма которая отправляет пост запрос с вот такими данными
XML
1
2
3
{"title"=>"zagolovok",
 "content"=>"content",
 "submit"=>"Submit Query"}
Как засунуть этот хэш в модель? В моделе 2 поля: title, content
Сейчас делаю это так
Rails
1
2
3
4
rec = News.new(params.permit(:title, :content))
    rec.title = params[:title]
    rec.content = params[:content]
    rec.save
Но я так понял рельсы жалуются на безопасность
ActionController::InvalidAuthenticityToken
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
actionpack (4.2.1) lib/action_controller/metal/request_forgery_protection.rb:181:in `handle_unverified_request'
actionpack (4.2.1) lib/action_controller/metal/request_forgery_protection.rb:209:in `handle_unverified_request'
actionpack (4.2.1) lib/action_controller/metal/request_forgery_protection.rb:204:in `verify_authenticity_token'
activesupport (4.2.1) lib/active_support/callbacks.rb:432:in `block in make_lambda'
activesupport (4.2.1) lib/active_support/callbacks.rb:164:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:164:in `block in halting'
activesupport (4.2.1) lib/active_support/callbacks.rb:504:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:504:in `block in call'
activesupport (4.2.1) lib/active_support/callbacks.rb:504:in `each'
activesupport (4.2.1) lib/active_support/callbacks.rb:504:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:92:in `_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in `_run_process_action_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.1) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.1) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.2.1) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.1) lib/action_controller/metal.rb:237:in `block in action'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in `call'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:43:in `serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:819:in `call'
rack (1.6.1) lib/rack/etag.rb:24:in `call'
rack (1.6.1) lib/rack/conditionalget.rb:38:in `call'
rack (1.6.1) lib/rack/head.rb:13:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.1) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.1) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.1) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:649:in `call'
activerecord (4.2.1) lib/active_record/migration.rb:378:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in `_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in `_run_call_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
web-console (2.1.2) lib/web_console/middleware.rb:37:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.1) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.1) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.1) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.1) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.1) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.1) lib/rack/lock.rb:17:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.1) lib/rack/sendfile.rb:113:in `call'
railties (4.2.1) lib/rails/engine.rb:518:in `call'
railties (4.2.1) lib/rails/application.rb:164:in `call'
rack (1.6.1) lib/rack/lock.rb:17:in `call'
rack (1.6.1) lib/rack/content_length.rb:15:in `call'
rack (1.6.1) lib/rack/handler/webrick.rb:89:in `service'
/home/anonym/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
/home/anonym/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
/home/anonym/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2015, 12:08
Ответы с готовыми решениями:

Ruby sinatra ajax post запрос
Накидал такой код: get "/" do erb :root end get "/start" do $browser =...

Конструктор с параметрами для Post модели
Здравствуйте. Нужна помощь или совет для правильного решения. Есть модель, для которой нужен...

POST не возвращает данные из модели в контроллер
По примеру из книги Сандерсона делаю собственные формы, но наткнулся на проблему - в моей...

Послать POST запрос запрос с двумя и более параметрами?
Делаю так: string ProxyString = ""; string URI =...

Добраться до типизированной модели из метода контроллера Post
Посмотрел примеры, сделал аналогично. Но при заходе в метод пост переменная model существует, но...

3
MpaKus
226 / 224 / 23
Регистрация: 30.01.2013
Сообщений: 720
11.05.2015, 13:36 2
1. как создаете форму, через хелперы form_tag или form_for?

2. News - очень плохое название для модели, хорошо бы иметь правило держать модели в ед. числе, лучше переназвать в Feed например

3.
Rails
1
Feed.create(title: params[:title], content: params[:content])
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
11.05.2015, 14:24  [ТС] 3
MpaKus, я делал работающее добавление через ссылку( news/recordCreate/?title=xxx&content=yyy ) так что думаю проблем из-за названий не должно возникнуть. А форму я написал на чистом хтмл, и тот хэш что я показал выводится на странице ошибки, значит он доходит нормально.

Добавлено через 30 минут
Решил проблему путем добавления в контроллер такой строки
Rails
1
protect_from_forgery with: :null_session
но, к сожалению, я не понимаю что она значит. Это защита от кражи сессий?
0
MpaKus
226 / 224 / 23
Регистрация: 30.01.2013
Сообщений: 720
11.05.2015, 16:29 4
1. добавление через ссылку - это какой-то костыль из мира похапэ

2. переделайте форму, пусть она создается через form_tag просто

3. это защита от Cross-site request'ов, легко можно найти в мануале
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2015, 16:29

Ошибка сборки модели при Post запросе
Приветствую! В проекте, помимо фронта(mvc), имеется несколько web api контроллеров для интеграции...

Видимость кнопки зависит от роли. Передача всей модели в Post
Я зелёный новичок в MVC. Параллельно читаю туториалы (на целые книжки нет время) и кряхчу над...

Для формирования хеш-адреса использовать хеш-функцию универсального хеширования
Для формирования хеш-адреса использовать хеш-функцию универсального хеширования . Подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru