のRails 2.3.5レール、
は、私はしばらくの間でレールを使用していないと私は少し練習の外だ外部DBにレコードを保存するためにRailsのフォームを作ります。私が作業しているアプリケーションでは、実行中のプロセスによってスキャンされ、チケットシステムにチケットを作成する外部データベースがあります。私がする必要があるのは、レコードをそこに保存するだけです。
私はdbを接続し、新しいモデルオブジェクトを作成してフォームを使用する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」と呼ばれるものは何もありません。外部のdbモデルは "tam_ticketing"と呼ばれ、コントローラは "tickets_controller"と呼ばれていました。何が起きていても、Railsは外部の "tam_thicking" dbからパスを作成し、その末尾に "s"を追加しようとしています。そのモデルのコントローラーやビューはありません。何かがあれば、 "new_ticket"というticket_controllerのアクションを探しているはずです。申し訳ありません - 私は完全に失われています。ありがとう! – Reno
私はなぜフォームタグを変更して動作を指定するのかわかりません:<%form_for(@ticket、:url => {:action => 'create'}))do | f | %> – Reno