если не хотите использовать функционал Rails, используйте функционал драйвера:
irb(main):001:0> conn = PGconn.connect( :dbname => 'test' ) => #<PGconn:0x101037670> irb(main):002:0> conn.escape("Foo \\") => "Foo \\\\" irb(main):003:0> PGconn::VERSION => "0.9.0"
9 сентября 2011 г. 15:23 пользователь JPascal <eshurmin@gmail.com> написал:
query является строкой для поиска, а не именем объекта в БД по этому
убирать ничего не надо, надо только экранировать.
> akzhan.abdu...@gmail.com> написал:
On 9 сен, 15:09, Akzhan Abdulin <akzhan.abdu...@gmail.com> wrote:
> PostgreSQL Naming Rules
>
> When you create an object in PostgreSQL, you give that object a name. Every
> table has a name, every column has a name, and so on. PostgreSQL uses a
> single data type to define all object names: the name type.
>
> A value of type name is a string of 63 or fewer characters1. A name must
> start with a letter or an underscore; the rest of the string can contain
> letters, digits, and underscores.
> Ну и точка - разделитель пространств имен.
>
> http://www.informit.com/articles/article.aspx?p=409471
>
> 9 сентября 2011 г. 15:05 пользователь Akzhan Abdulin <
>> > 9 сентября 2011 г. 14:59 пользователь JPascal <eshur...@gmail.com>написал:
>
>
>
>
>
>
> > Вы должны удалять все символы, которые не являются валидными для имени
> > таблицы. На самом деле не только удалять, но и валидировать на входе.
> > Насколько я понимаю, валидно [\w\.]
>
-->
> > Я вот так делаю, это пойдет?
>
> >> query.gsub(/\\/, '\&\&').gsub(/'/, "''")
>
> >> On 9 сен, 14:47, Akzhan Abdulin <akzhan.abdu...@gmail.com> wrote:
> >> > query.gsub(/[^\w\.]/, '')
>
> >> > 9 сентября 2011 г. 14:33 пользователь JPascal <eshur...@gmail.com>
> >> написал:
>
> >> > > Не не... внимательно посмотрите на метод
> >> > > from("messages,plainto_tsquery('#{query}') q") тут чистая вставка
> >> > > текста что пользователь наберет в форме с сайта, а это опасно.
>
> >> > > On 9 сен, 14:31, Andrew Hoffmann aka SKYDOS <andrewsh...@gmail.com>
> >> > > wrote:
> >> > > > .where("msg=?", query)
>
> >> > > > On 09/09/2011 02:30 PM, JPascal wrote:
>
> >> > > > > .
> >> > > > > .
>
> >> > > > > query = "test"
> >> > > > > Message.select("*, ts_headline(message, q,'HighlightAll=true') as
> >> > > > > highlight").where("message @@
> >> > > > > q").from("messages,plainto_tsquery('#{query}') q")
>
> >> > > > > SELECT *, ts_headline(message, q,'HighlightAll=true') as highlight
> >> > > > > FROM messages,plainto_tsquery('test') q WHERE (message @@ q)
>
> >> > > > > query , .
>
> >> > > > > ?
>
> >> > > > > :
> >> > >http://www.postgresql.org/docs/8.3/static/textsearch-controls.html#TE.
> >> ..
>
> >> > > --
> >> > > --
> >> > > Данное сообщение отправлено Вам, так как Вы являетесь подписчиком
> >> группы
> >> > > "RubyOnRails to russian" на группах Google.
> >> > > FAQ группы находится по адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>
> >> > > Для того, чтобы отправить сообщение в эту группу, пошлите его по
> >> адресу
> >> > > ror2ru@googlegroups.com
> >> > > Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> >> > > ror2ru-unsubscribe@googlegroups.com
> >> > > Дополнительные варианты находятся на странице группы
> >> > >http://groups.google.com/group/ror2ru?hl=ru
>
> >> --
> >> --
> >> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> >> "RubyOnRails to russian" на группах Google.
> >> FAQ группы находится по адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>
> >> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> >> ror2ru@googlegroups.com
> >> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> >> ror2ru-unsubscribe@googlegroups.com
> >> Дополнительные варианты находятся на странице группы
> >>http://groups.google.com/group/ror2ru?hl=ru
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий