Контроллер Rails 3 игнорирует параметр - PullRequest
0 голосов
/ 14 июня 2011
class TagController < ApplicationController

 def show
  @videos = Video.tagged_with(params[:id])

  respond_to do |format|
    format.html # show.html.erb
  end
 end

end

Вход:

Started GET "/tag/node.js" for 127.0.0.1 at 2011-06-13 23:10:59 +0100
Processing by TagController#show as JS
Parameters: {"id"=>"node"}

В настоящее время я передаю node.js как значение для моего params[:id], но каким-то образом (и согласно журналам) мое приложение передает только node в качестве значения параметра.

Как я могу убедиться, что значение node.js передается в мой контроллер?

Заранее спасибо.

1 Ответ

2 голосов
/ 14 июня 2011

Ах, (.:format) на маршрутах съедается Rails; .js используется для определения формата.

Итак, простое исправление для этого может быть:

respond_to do |format|
  format.html # show.html.erb
  format.js   { render <erb file used for html> }
end

Но это не "правильно", так как вы используете format для возврата чего-то не такого формата (мы возвращаем HTML при запросе .js)

Если вы можете, вы должны изменить «node.js» на другое значение, например «node_js». Иначе, посмотрите на использование parse_query или parse_nested_query в стойке .

Или вы можете определить / переопределить маршрут без привязки (.:format) к концу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...