的Rails 2.3.5導軌,使一個Rails的形式記錄保存到外部數據庫
我還沒有在一段時間使用Rails和我有點生疏了。對於我正在處理的應用程序,有一個外部數據庫由正在運行的進程掃描並在票證系統中創建票證。我只需要在那裏保存一條記錄。
我以爲我可以連接數據庫並使用Rails窗體創建一個新的模型對象,然後窗體使用該窗體 - 提交窗體的位置應該轉到控制器中的創建操作。
我從試圖獲得的錯誤讓我難住了(未定義的方法`tam_ticketings_path')。
感謝您的任何提示或幫助。我從來沒有必要處理將記錄保存到應用程序之外的數據庫,我不確定我應該在這裏做什麼(除了返回到HTML表單和手動SQL Insert語句)。
謝謝!
database.yml中:
tam_ticketing_db:
adapter: mysql
database: tam_ticketing_1
模型:tam_ticketing
class TamTicketing < ActiveRecord::Base
TamTicketing.establish_connection "tam_ticketing_db"
set_table_name "tickets"
end
門票控制器的方法:
def new_ticket
@ticket = TamTicketing.new
new_ticket視圖:
<% form_for(@ticket) do |f| %>
<%= f.error_messages %>
錯誤:
Showing app/views/tickets/new_ticket.html.erb where line #1 raised:
undefined method `tam_ticketings_path' for #<ActionView::Base:0x3b01f18>
Extracted source (around line #1):
1: <% form_for(@ticket) do |f| %>
2: <%= f.error_messages %>
3:
4: <p>
我仍然很困惑,我做了地圖資源並連接了我的行動和觀點。沒有什麼叫「tam_ticketings」。外部數據庫模型被稱爲「tam_ticketing」,那麼我所擁有的控制器被稱爲「tickets_controller」。無論發生什麼,Rails都試圖從外部「tam_thicking」db中創建一條路徑,並在其末尾添加「s」。該模型沒有控制器或視圖。如果有什麼,它應該在tickets_controller中尋找名爲「new_ticket」的操作。對不起 - 我完全失去了。謝謝! – Reno
不知道爲什麼,但如果我改變表單標籤來指定它的作用:<%form_for(@ticket,:url => {:action =>'create'})do | f | %> – Reno