2013-12-09 3 views
1

я получил сообщение об ошибке при использовании контроллера для чтения текстового файла:Ошибки при использовании контроллера для чтения текстового файла

#my_page.html.erb 
<input id="test_input" > 

#controller.rb 
def my_page 
File.open($directory+'\test.TXT', 'r') do |f1| 
    $line = f1.readlines 
    f1.close  
end  
respond_to do |format| 
    format.js 
end 
end 

#my_page.js.erb 
el = document.getElementById(test_input); 
el.innerHTML='<%=$line$>'; 

Это загрузить пустую страницу без входа, и я не знаю, почему, пожалуйста, поправьте меня, если я неправильно.

+0

Вы пытаетесь загрузить файл? –

+0

Пожалуйста, укажите также и ошибку. –

+0

И ваш код выглядит как код PHP, скопированный и вставленный в код Ruby ... –

ответ

0

Я думаю, что понимаю, что вы делаете. Вот что вы можете сделать.

#controller.rb 
def my_page 
    @text= File.open('your_file.txt').read 
end 

#my_page.html.erb 
<input id="test_input" value="<%= @text %>" /> 

При обновлении страницы текст должен отображаться на вашей странице. Не нужно использовать Javascript сейчас. Вы должны использовать его, когда запрашиваете ресурс с помощью AJAX.

Если вы хотите обновить значение текстового поля, вам необходимо добавить новое действие в контроллер и обновить ваши маршруты.rb соответственно. Кроме того, всегда полезно использовать помощники форм, которые Rails предоставляет для использования функции безопасности (токен CSFR), как показано ниже. Если у вас есть модель для текстового поля, вы можете использовать form_for helper. Вы можете прочитать о них в

http://guides.rubyonrails.org/form_helpers.html

Вот код, тем не менее.

#my_page.html.erb 

<%= form_tag save_text_path do %> 
    <%= text_field_tag :test_input, @text %> 
    <%= submit_tag "Update" %> 
<% end %> 

# in your controller 
def save_text 
    updated_text = params[:test_input] 
    # do something with the text 
end 

# in your routes.rb 
post "save_text" => "your_controller_name#save_text", as: "save_text" 
+0

да, это то, что я хочу сделать, спасибо за вашу помощь. – Green

+0

Что делать, если я хочу создать кнопку для обновления значения в тексте при каждом изменении содержимого файла txt? <ввод ID = "test_input" значение = "<%= text %> "/> Green

+0

Смотрите обновленный ответ. Благодарю. –

Смежные вопросы