誰能告訴我,爲什麼我得到下面的錯誤?::的ActionView ::模板出錯(字符串隱式轉換爲整數)
這是我states_controller.rb
:
def index
@states = State.all
end
而且在index.html.erb:
17 <form>
18 <select onchange="location = this.options[this.selectedIndex].value;">
19 <option>Select State…</option>
20 <% @states.each do |state| %>
21 <option value="<%= state.id %>">
22 <%= nytimes_state_name(state.name) %></option>
23 <% end %>
24 </select>
25 </form>
,當我在本地運行,但是一旦部署到Heroku上也能正常工作,我得到以下錯誤:
ActionView::Template::Error (no implicit conversion of String into Integer)
當我重新
46 <% @states.first(25).each do |state| %>
47 <li><%= link_to state.name.downcase + nytimes_state_abbrev(state.name), state %></li>>
48 <% end %>
然後我得到了同樣的錯誤:移動nytimes_state_name
方法,直到遇到下一個塊運行良好。
再次,當我刪除nytimes_state_abbrev
方法時,它可以正常工作,直到它碰到下一個代碼塊,它也調用state.name
,並期望它是一個字符串。 (該name
值郵政編碼abbreviations- CA
,,TX
,NY
,等等。)
你確定你使用的本地和在Heroku一樣的寶石版本?嘗試使用bundler在本地運行,即'bundle exec rails server'。 – dpassage 2014-09-30 15:49:39
它仍然罰款在本地運行,但你沒有提醒我,我不得不修改的寶石,以避免一個實例變量的碰撞與我的'states'模型。我如何部署修改後的寶石? – 2014-09-30 15:52:39
這是一個完全不同的問題。 :)簡短的回答或者直接嵌入源在Rails應用(http://stackoverflow.com/questions/6800074/custom-ruby-gem-in-gemfile-on-heroku),或叉Github上的寶石和在你的'Gemfile'中引用fork。基本上,把它放在Heroku可以看到的地方。 – dpassage 2014-09-30 16:01:11