remote_form_for не вызывает шаблон rjs - PullRequest
1 голос
/ 10 февраля 2010

Так вот моя форма

<% remote_form_for([:admin, Page.new]) do |f| %>
    <ol>
        <li>
            <%= f.label(:title) %>
            <%= f.text_field(:title) %>
        </li> 
        <li> 
            <%= f.label(:parent_page) %>
            <%= f.select(:parent_page_id, Page.roots.map { |p| [p.title, p.id] }.unshift(["none", nil])) %>
        </li>
    </ol>
    <div class="modal-controls">
        <%= submit_tag("Save") %> or <%= link_to_function("cancel", "R.Pages.hideAdd();") %>
    </div>
<% end %>

И мое действие

def create
  @page = Page.create(params[:page])
  @languages = Language.all
  @languages.each do |language|
  @page.page_languages.create(:language_id => language.id)
end

По какой-то причине отправленный запрос не вызывает шаблон create.js.rjs, а вместо этого пытается вызвать create.html.erb, нужны ли какие-то дополнительные настройки с формой?

кстати я использую рельсы 2.3.5

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

Я назвал свой шаблон create.rjs.js вместо create.js.rjs, поэтому я не работал

1 голос
/ 10 февраля 2010

Я не могу вспомнить точное поведение по умолчанию в рельсах, но вы пытались поместить response_to в конце действия вашего контроллера:

respond_to(:html, :js)

Надеюсь, это поможет.

EDIT

Я вернулся, чтобы проверить поведение по умолчанию для Rails в отношении рендеринга представлений. В этом случае Rails предпочитает соглашение о конфигурации. Поведение по умолчанию состоит в том, что Rails автоматически отображает представления с именами, которые соответствуют действиям. Вам больше не нужен response_to, если вы придерживаетесь этого соглашения. Вот документация .

Просто хотел обновить мой пост правильной информацией ... рад, что вы решили свою проблему.

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