したがって、Rails 3 で単純な ajax 呼び出しを実行しようとしていますが、ajax を適切に返すことができません。明らかな何かが欠けていると思いますが、過去3時間試してきたので、質問する時が来たと思いました.
検索結果を返すはずの投稿モデルのインデックス ページで ajax 呼び出しを試みています。
index アクションの posts_controller.rb は次のようになります。
def index
@posts = Post.search(params[:search])
respond_to do |format|
format.html # index.html.erb
format.js #ajax call
format.json { render json: @posts }
end
end
私のindex.html.erb(検索テキストフィールドと(ajax)結果が返されるdivを含む)は次のようになります
<%= form_tag posts_path, :method => "get", :remote => true do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :class => "btn", :name => nil %>
<% end %>
<div id="posts">
<%= render @posts %>
</div>
私の _post.html.erb は次のようになります
<table>
<tr>
<td class="well well-small"><%= post.title %></td>
<td class="well"><%= post.content %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<br />
<br />
</table>
私のindex.js.erbは次のようになります
$("#posts").html("<%= escape_javscript(render :partial => "new" ) %>");
私のpost.rbモデルページは次のようになります
class Post < ActiveRecord::Base
attr_accessible :content, :title
def self.search (search)
if search
find(:all, :conditions => ['title LIKE ?', "%#{search}%"])
else
find(:all)
end
end
end
申し訳ありませんが、関連するすべてを表示したいだけのコードが非常に多くなければなりません。何らかの理由で、検索結果が ajax で更新されません。index.html.erb のフォームから :remote => true を削除し、index.js.erb ファイルを削除すると、検索結果が (ajax なしで) 正常に返されるため、検索機能に問題はありません。
よろしくお願いします。いつものように、あなたが私に良い答えをくれれば、それを正しいものとして受け入れます。