我試圖從控制器向使用實例變量的視圖發送一個字符串變量。問題是,當呈現視圖時,發送的字符串變量被剝離了原始字符串中的所有空格。有沒有一些ruby字符串的特殊屬性或軌道如何處理他們,我錯過了?Ruby - 從控制器傳遞一個字符串以查看空格
紅寶石2.0.0p481(2014年5月8日修訂45883)[x86_64的Linux的]
滑軌4.0.5
def stringsub
forminput = params['mystring']
spaceinput = String.new(forminput)
puts "Displaying @formstring from controller: " + @formstring
@formstring = spaceinput
end
查看
<!--HTML page view -->
<p><%= @formstring %></p>
導軌終端
Started POST "/pages/stringsub" for 127.0.0.1 at 2014-12-04 19:34:26 -0500 Processing by PagesController#stringsub as HTML Parameters: {"mystring"=>"this should have spaces"} Displaying @formstring from controller: this should have spaces Rendered pages/stringsub.html.erb within layouts/application (1.4ms) Completed 200 OK in 6ms (Views: 4.7ms | ActiveRecord: 0.0ms)
渲染HTML
<!--HTML page view -->
<p>thisshouldhavespaces</p>
(注意空間在最終的HTML被拆除)
有沒有辦法保存在發送原字符串的空間?
編輯:
的問題是通過這個項目,其方法有傳遞給它作爲參數原始字符串,並將其用於.gsub從發送給它的參數刪除空格的組成員創建的方法。
方法,打破它
def groupmethod(start)
sub = start.split(" ")
count = (start.length - start.gsub!(/\s+/, "").length + 1) * 0.4
諷刺的是我居然能與String.new創建一個新的變量了出來,並傳遞一個的方法,而不是
完好無損的實例變量
修復它forminput = params['mystring']
@formstring = forminput
testvariable = String.new(forminput)
groupmethod(testvariable)
是否有更好或更正確的方式將變量傳遞給ruby方法,並分別使用它們而不影響你通過的變量t該方法?
應該保留一個空格。多個,不,因爲這是HTML的工作原理,你需要使它們不是。破壞 – 2014-12-05 01:03:58
不相關,但沒有理由使用String.new或temp變量。 – 2014-12-05 01:06:44
嘗試把'@formstring。在控制器中凍結,看它是否被無意中修改了。 – 2014-12-05 02:36:58