2011-11-14 12 views
0

私はメールの爆発を作成することができるレール3.1アプリを持っています。私は特定の爆発を郵送するためのメールリンクを持つすべての爆発のリストを持っています(ajaxを使用)。私は使用したい爆発のコントローラーにカスタムアクションを持っています。リンクをクリックすると、exのためにmail.js.coffeeの代わりにshow.js.coffeeを呼び出すことになります。どのように私は私が作った行動を使用するように強制するのですか?私は私のコントローラとshow.js.coffeeのshowアクションにすべてを置くではなく、メールアクションとmail.js.coffeeがRails 3.1 javascriptファイルの使用

<td><% if can? :create, Blast%><%= link_to "Mail",blast,:action => :mail :confirm => "Are you sure?",:remote => true%><%end%></td> 

これは

これは部分的に私の爆発である等の際にすべてが動作しますコントローラのメソッドは

def mail 
    @customers = Customer.all 
    @mailcustomers = Customer.where(:opted_out => false) 
    @blast = Blast.find(params[:id]) 
end 

これは私のmail.js.coffeeファイルである

<% @mailcustomers.each do |f|%> 
    <% BlastMailer.mail_blast(f,@blast).deliver %> 
<%end%> 

はroutes.rbを

resources :blasts do 
    collection { post :mail } 
end 

答えて

0

私は何をする必要があるのか​​分かりました。これは働いた線です。

<td> 
    <% if can? :create, Blast%> 
    <%= link_to "Mail", {:action => :mail, :id=>blast.id}, :method => :post,:confirm => "Are you sure?",:remote => true%> 
    <%end%> 
</td> 
0

編集では:私のオリジナルの答えで、私は.js.coffeeファイルにERBの使用で尻込み。しかし、さらなる調査の上、それはRailsが3.1 JSが:remote => trueフォームアクションに応じて提供されている特殊なケースでこれを可能にすることが判明した。)

私はあなたの問題は

:action => :mail :confirm => "Are you sure?" 

てみてくださいだと思います:mailの後にコンマを入れます。

+0

Railsはjs.coffeeファイル内のルビコードを解釈します。もはやerb拡張の必要はありません。私は何をする必要があるのか​​分かりました。これは働いた線です。​​<%if can? :あなたは本当ですか?::あなたは本当ですか?::あなたは本当ですか? remote => true%><%end%> – ctilley79

+0

ご覧のとおり、上記のコメントの行を使って修正しました – ctilley79

関連する問題