2012-01-10 17 views
1

私はアプリ内にacts-as-messageableのレール宝石を使用しています。未定義メソッド `acts_as_messageable_messages_path`

は、しかし、私のmessages_controllerに私は

def new 
    @message = ActsAsMessageable::Message.new 
end 

を持っており、私の見解では、私は次のエラーがスローされます

<%= form_for(@message) do |f| %> 

を持って

未定義のメソッド `acts_as_messageable_messages_path」

これはなぜ宝石で起こっているのか分かりません。

+0

あなたが使っているgemのgithubホームページへのリンクを投稿してください。 –

+0

@Planetplutoその方法が代わりに機能するかどうかを確認するには、私の答えを参照してください – iwasrobbed

答えて

2

フォームは、(messages#createアクションであるべきである)に向けて指すようにしたいものをパス述べ明示的に試してみてください。

<%= form_for(@message) :url => messages_path, :method => :post do |f| %> 
    <div class="field"> 
    <%= f.label :to %><br /> 
    <%= f.email_field :to %> 
    </div> 
    <div class="field"> 
    <%= f.label :topic %><br /> 
    <%= f.text_field :topic %> 
    </div> 
    <div class="field"> 
    <%= f.label :body %><br /> 
    <%= f.text_area :body %> 
    </div> 

    <button type="submit" class="btn primary">Send</button> 
    <button type="reset" class="btn">Cancel</button> 
<% end %> 

これはあなたのroutes.rbファイルでこれを持っていることを前提としています

resources :messages 

また、必要なフィールドをに渡していることを確認してください。ActsAsMessageablehttps://github.com/LTe/acts-as-messageable/wiki/Example-controller

+0

これはエラーを解決しましたが、to:paramは送信していません。これは、ユーザが返さないので、私は@to = User.find_by_email(params [:to])を持っているとエラーを返します。 – Vasseurth

+0

':to'はコントローラに渡されますが、' User.find_by_email( params [:to]) 'がnilを返していますか?渡す電子メールがデータベースに存在していますか? – iwasrobbed

+0

はい。どのパラメータも正しく渡されていないので、@toをUser.find_by_email([email protected])に置き換え、params [:topic]を持つと、メッセージのトピックは設定したものになりません。パラメータが受け入れられたり送信されたりしていません。 – Vasseurth

0

gemはルートを追加しないため、フォームヘルパーは送信URLを生成しようとしているからです。 rake routesで確認してください。

+0

どうすればルートに追加できますか? githubのルートについては何も言わない – Vasseurth

+0

どのバージョンのRailsを使用していますか? –

+0

私はRails 3.1のバージョンを使用しています。 – Vasseurth

関連する問題