У меня есть форма в рубиновом приложении, которое не работает при загрузке страницы; когда я нажимаю на «обновлении», то она работает просто отлично:Form_for form в ruby не работает, когда страница загружается
<div class="newtodoline">
<div class="description text_field">
<%= form_for @todo do |form| %>
<%= form.text_field :description, placeholder: 'Add new todo', size: 25 %></div>
<div class="days_old">
<%= form.hidden_field :list_id, :value => @list.id %></div>
<div class="completed savetodo">
<%= form.submit 'Save Todo' %></div>
<% end %>
Я полагаю, проблема заключается в turbolinks, но, как я использую turbolinks событие, чтобы зажечь яваскрипт перехода страницы, я предпочел бы не превратить это от . , , может ли кто-нибудь предложить способ, которым я могу получить эту форму для работы при первой загрузке страницы?
У меня также могут быть проблемы с контроллерами, хотя снова, когда я обновляю страницу, эта форма работает, поэтому я не думаю, что это проблема. , , во всяком случае, эта форма создает новое todo, которое требует действия create от контроллера todos; но сама форма находится в представлении списка. Так, в моем контроллере списков у меня есть:
def show
@list = List.find(params[:id])
@cutoff = @list.cutoff
if @list.todos.exists? then
@list.todos.each do |t|
if t.age_of_todo > @cutoff then
t.delete
end
end
end
@todos = @list.todos
@todo = Todo.new
end
и в моем Todos контроллере:
def create
@todo = Todo.new(todo_params)
if @todo.valid?
@todo.save
redirect_to list_path(id:@todo.list_id), notice: 'Your new TODO was saved!'
else
flash[:notice] = 'You forgot to enter a description. Please try again.'
redirect_to :back
end
end
private
def todo_params
params.require(:todo).permit(:description, :list_id)
end
Должен ли я закрыть turbolinks и найти новый способ вызова моих страниц переходов, или есть другой способ заставить эту форму работать?
Спасибо!
EDIT: Я должен упомянуть, что я попытался отключить turbolinks, и это устраняет проблему; к сожалению, тогда мои красивые переходы страницы также закрылись, и я не уверен, как присоединить эти переходы к событиям изменения страницы html. Я хотел бы знать, как турболинки терпят неудачу в этой конкретной форме, и как исправить это, продолжая использовать turbolinks! Кто-нибудь знает, где именно код для form_for-помощника?
определяют не работает? вы получаете сообщение об ошибке? он не представляет? не делает ли это? Как вы попадаете на страницу, вы используете множество привязок в jquery. Если так вы посмотрели (https://github.com/kossnocorp/jquery.turbolinks) – Doon
Нет ошибки, просто ничего не происходит. Нет привязок, без jquery, только эффект FadeIn на событие turbolink (страница: изменение). –
Как насчет консоли браузера? он должен хотя бы дать вам что-то там, если не проверить сеть на консоли – neo