Вероятно, это очень простой вопрос. Я новичок в Rails, и мне трудно понять что-то, что, я уверен, тривиально. У меня есть простая ссылка "Показать", которая является удаленной и прекрасно работает. Однако, как только я щелкаю удаленную ссылку, и содержимое отображается в / из моей части, я не могу обновить это содержимое, щелкнув еще раз по другой ссылке. Журналы моего сервера показывают правильные звонки, поэтому я считаю, что с обратным вызовом что-то не так. Может быть, это как-то связано с моим: местным заданием в моей части. чтобы лучше понять вот мой код ...
application.js
$(function() {
$("#showreqs a").live("click", function() {
$.getScript(this.href);
return false;
});
});
_showreq.html.erb (очень просто доказать концепцию)
<%= @project.name %>
show.js.erb
$("#showreq").replaceWith("<%= escape_javascript(render :partial => 'showreq', :locals => { :project => @project}) %>")
projects.html.erb (только важный раздел)
<div id="showreqs">
<%= form_for(@project) do |f| %>
<%= render 'shared/error_messages' %>
<p>
Name: <%= f.text_field :name %>
Owner: <%= f.select :user_id, options_from_collection_for_select(@users, 'id', 'name'), :class => 'genForm_dropBox' %>
<%= f.submit "Create Project" %>
</p>
<% end %>
<ol>
<% @projects.each do |t| %>
<li>
<%= t.name %> - Owner: <%= t.user.name %> -
<%= link_to "Show", t, :action => "show", :remote => true %>
|
<%= link_to "delete", t, :method => :delete, :confirm => "You sure?", :title => "Delete" %>
</li>
<% end %>
</ol>
</div>
projectscontroller (очень некрасиво и будет чистить)
class ProjectsController < ApplicationController
def index
@title = "Requirements"
@users = User.order("created_at").all
@project = Project.new
@projects = Project.all
end
def show
@users = User.order("created_at").all
@project = Project.find(params[:id])
@projects = Project.all
end
def create
@project = Project.new(params[:project])
if (defined?(@project_e)).nil?
@project_e = Project.new(params[:project])
end
if @project.save
flash[:success] = "Successfully created a Project."
redirect_to projects_path
else
flash[:error] = "You made some errors"
redirect_to projects_path
end
end
def update
@project = Project.find(params[:id])
if @user.update_attributes(params[:user])
flash[:success] = "Project updated."
redirect_to projects_path
else
flash[:error] = "You made some errors"
redirect_to projects_path
end
end
def destroy
Project.find(params[:id]).destroy
flash[:success] = "Project destroyed."
redirect_to projects_path
end
end
Если вам нужен какой-либо другой код, такой как маршруты, дайте мне знать, но я предположил, что мои маршруты и все остальное в порядке, так как это работает, когда впервые нажимается ссылка «показать».