So wie ich das Log verstehe, scheint es tatsächlich so, als ob die Sprache zwar erfasst wird, dann aber nicht übergeben wird bzw. nicht für die Suche verwendet wird.
Wenn ich aber
|
RubyOnRails Quellcode
|
1
|
if params[:search]
|
auf
|
RubyOnRails Quellcode
|
1
|
if params[:search, :lang]
|
ändere um beide Parameter zu berücksichtigen bekomme ich sofort die Fehlermeldung, dass ich hier eine falsche Anzahl an Argumenten habe (2 statt 1)
Wenn ich es so mache, dass ich erst nach der Sprache filtere und dann nach den Tags wird die Sprache ignoriert, da stimmt bei mir wohl auch was nicht.
|
RubyOnRails Quellcode
|
1
2
3
4
5
6
7
8
9
|
if params[:search]
search_condition = "%#{params[:lang]}%"
@code_snippets = CodeSnippet.find(:all, :conditions => ['language LIKE ?', search_condition])
search_condition = "%#{params[:search]}%"
@code_snippets = CodeSnippet.find(:all, :conditions => ['tags LIKE ?', search_condition])
else
@code_snippets = CodeSnippet.find(:all)
end
end
|
Irgendwas mache ich also offensichtlich falsch
Anbei noch das Log für den Fall das es hilft:
Processing CodeSnippetsController#index (for 127.0.0.1 at 2010-06-10 22:42:00) [POST]
Parameters: {"search"=>"hello", "authenticity_token"=>"FNi7IDaXYSz2B8OiyGmHXwuITs2NphkU3TvBl9emMqA=", "method"=>"get", "lang"=>"Python"}
{"search"=>"hello", "authenticity_token"=>"FNi7IDaXYSz2B8OiyGmHXwuITs2NphkU3TvBl9emMqA=", "action"=>"index", "method"=>"get", "controller"=>"code_snippets", "lang"=>"Python"}
[4;36;1mCodeSnippet Load (1.0ms)[0m [0;1mSELECT * FROM "code_snippets" WHERE (tags LIKE '%hello%' AND language LIKE '--- :lang
') [0m
Rendering template within layouts/application
Rendering code_snippets/index
Rendered code_snippets/_search (2.0ms)
Completed in 15ms (View: 6, DB: 1) | 200 OK [
http://127.0.0.1/?method=get]