gpt4 book ai didi

javascript - 使用 AJAX 刷新 Rails 部分时未定义的方法

转载 作者:行者123 更新时间:2023-11-27 23:24:31 25 4
gpt4 key购买 nike

我正在努力解决如何使用 Rails 和 AJAX 重新加载部分内容,并且收到“未定义方法”错误。我认为这可能是因为我没有正确地将局部变量传递回部分,但我不确定这应该如何工作。

我有一个“项目”Show.html.erb 页面。在该显示页面上,有一个与该项目相关的“投资”DIV。

Show.html.erb

  <div class="col-md-3" id="investments-container">
<%= render 'proj_investments' %>
</div>

然后,它会在 _proj_investments.html.erb 部分中呈现一个部分,该部分循环遍历与该项目相关的所有投资(按奖励类型分组)。每个都有一个表单提交,允许以某种方式点击“投资”按钮并使用 AJAX 创建新的投资。 ( <%= form_for [@investment, Investment.new], 远程: true, "data-type"=> :js do |f| %> )

_proj_investments.html.erb

<% if @project.rewards.any? %>
<% @project.rewards.each do |reward| %>
<div class="panel panel-default project-rightpanel">
<div class="project-rightpanel-header">
<span class="project-rightpanel-header amount"><%=number_to_currency(reward.amount,precision: 0)%></span>
<span class="project-rightpanel-header amount"><%=reward.rewardtype.name %></span>
</div>
<div class="project-rightpanel-header">
<%=reward.investments.count(:amount)%> investments for <%=number_to_currency(reward.investments.sum(:amount),precision: 0)%>
</div>
</div>
<%= form_for [@investment, Investment.new], remote: true, "data-type" => :js do |f| %>
<div class="field">
<%= f.hidden_field :amount, :value => reward.amount %>
<%= f.hidden_field :User_id, :value => current_user.id %>
<%= f.hidden_field :Reward_id, :value => reward.id %>
</div>
<div class="actions">
<%= f.submit "INVEST", :class => "btn btn-success" %>
</div>
<% end %>

</div>
<% end %>
<% end %>

然后,投资 Controller 调用 Create 方法并响应 JS 并调用我的 create.js.erb

investments_controller.rb

  def create
@investment = Investment.new(investment_params)

respond_to do |format|
if @investment.save
format.js {}
format.html { redirect_to @investment, notice: 'Investment was successfully created.' }
format.json { render :show, status: :created, location: @investment }
else
format.html { render :new }
format.json { render json: @investment.errors, status: :unprocessable_entity }
end
end

结束

在 create.js.erb 中,我只想刷新原始 proj_investments 部分中的所有内容。但是,当我加载它时,当我使用此代码时,它会给我一个“未定义的方法‘投资’”错误:

Create.js.erb

$("#investments-container").html("<%= escape_javascript(render :partial => 'projects/proj_investments', :formats => :html)%>"); 

认为这里发生的事情是 Rails 部分已经渲染,因此我尝试利用项目、奖励和投资等不再通过 AJAX 访问的对象。也许我需要以某种方式传递这些对象来渲染部分。但我不知 Prop 体该怎么做。或者,如果我在概念上是错误的,那也很好知道!

谢谢,迈克

添加的模型:

class Project < ActiveRecord::Base
belongs_to :user
belongs_to :genre
has_many :rewards, dependent: :destroy
has_many :investments, through: :rewards
has_many :collaborators
has_attached_file :image, :styles => { :large => "600x600>", :medium => "300x300>", :thumb => "100x100>" }
validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png"]
validates :image, presence: true
accepts_nested_attributes_for :rewards,
reject_if: proc { |attributes| attributes['name'].blank? },
allow_destroy: true
accepts_nested_attributes_for :collaborators,
reject_if: proc { |attributes| attributes['last'].blank? },
allow_destroy: true
end

class Investment < ActiveRecord::Base
belongs_to :user
belongs_to :reward
belongs_to :project
end

class Reward < ActiveRecord::Base
belongs_to :project
belongs_to :rewardtype
has_many :investments, dependent: :destroy
validates :rewardtype, presence: true
validates :name,
presence: true
end

下面是完整的堆栈跟踪:

D, [2016-01-28T21:44:45.289613 #50185] DEBUG -- : 
D, [2016-01-28T21:44:45.289663 #50185] DEBUG -- :
D, [2016-01-28T21:44:45.289679 #50185] DEBUG -- :
D, [2016-01-28T21:44:45.289689 #50185] DEBUG -- :
I, [2016-01-28T21:44:45.289850 #50185] INFO -- : Started GET "/projects/28" for ::1 at 2016-01-28 21:44:45 -0800
I, [2016-01-28T21:44:45.289887 #50185] INFO -- : Started GET "/projects/28" for ::1 at 2016-01-28 21:44:45 -0800
D, [2016-01-28T21:44:45.298245 #50185] DEBUG -- : ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
D, [2016-01-28T21:44:45.298297 #50185] DEBUG -- : ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
I, [2016-01-28T21:44:45.326787 #50185] INFO -- : Processing by ProjectsController#show as HTML
I, [2016-01-28T21:44:45.326853 #50185] INFO -- : Processing by ProjectsController#show as HTML
I, [2016-01-28T21:44:45.326896 #50185] INFO -- : Parameters: {"id"=>"28"}
I, [2016-01-28T21:44:45.326923 #50185] INFO -- : Parameters: {"id"=>"28"}
D, [2016-01-28T21:44:45.349554 #50185] DEBUG -- : Project Load (0.2ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT 1 [["id", 28]]
D, [2016-01-28T21:44:45.349601 #50185] DEBUG -- : Project Load (0.2ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT 1 [["id", 28]]
D, [2016-01-28T21:44:45.375951 #50185] DEBUG -- : User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.376001 #50185] DEBUG -- : User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.418778 #50185] DEBUG -- : (0.2ms) SELECT SUM("investments"."amount") FROM "investments" INNER JOIN "rewards" ON "investments"."reward_id" = "rewards"."id" WHERE "rewards"."project_id" = ? [["project_id", 28]]
D, [2016-01-28T21:44:45.418823 #50185] DEBUG -- : (0.2ms) SELECT SUM("investments"."amount") FROM "investments" INNER JOIN "rewards" ON "investments"."reward_id" = "rewards"."id" WHERE "rewards"."project_id" = ? [["project_id", 28]]
D, [2016-01-28T21:44:45.438045 #50185] DEBUG -- : Reward Exists (0.1ms) SELECT 1 AS one FROM "rewards" WHERE "rewards"."project_id" = ? LIMIT 1 [["project_id", 28]]
D, [2016-01-28T21:44:45.438090 #50185] DEBUG -- : Reward Exists (0.1ms) SELECT 1 AS one FROM "rewards" WHERE "rewards"."project_id" = ? LIMIT 1 [["project_id", 28]]
D, [2016-01-28T21:44:45.438824 #50185] DEBUG -- : Reward Load (0.1ms) SELECT "rewards".* FROM "rewards" WHERE "rewards"."project_id" = ? [["project_id", 28]]
D, [2016-01-28T21:44:45.438858 #50185] DEBUG -- : Reward Load (0.1ms) SELECT "rewards".* FROM "rewards" WHERE "rewards"."project_id" = ? [["project_id", 28]]
D, [2016-01-28T21:44:45.448028 #50185] DEBUG -- : Rewardtype Load (0.1ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.448074 #50185] DEBUG -- : Rewardtype Load (0.1ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.453290 #50185] DEBUG -- : (0.2ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 50]]
D, [2016-01-28T21:44:45.453370 #50185] DEBUG -- : (0.2ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 50]]
D, [2016-01-28T21:44:45.455273 #50185] DEBUG -- : (0.3ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 50]]
D, [2016-01-28T21:44:45.455328 #50185] DEBUG -- : (0.3ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 50]]
D, [2016-01-28T21:44:45.476845 #50185] DEBUG -- : User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.476897 #50185] DEBUG -- : User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.478277 #50185] DEBUG -- : Rewardtype Load (0.1ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 3]]
D, [2016-01-28T21:44:45.478313 #50185] DEBUG -- : Rewardtype Load (0.1ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 3]]
D, [2016-01-28T21:44:45.479190 #50185] DEBUG -- : (0.1ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 55]]
D, [2016-01-28T21:44:45.479218 #50185] DEBUG -- : (0.1ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 55]]
D, [2016-01-28T21:44:45.479621 #50185] DEBUG -- : (0.1ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 55]]
D, [2016-01-28T21:44:45.479645 #50185] DEBUG -- : (0.1ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 55]]
D, [2016-01-28T21:44:45.481244 #50185] DEBUG -- : CACHE (0.0ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.481287 #50185] DEBUG -- : CACHE (0.0ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 2]]
D, [2016-01-28T21:44:45.482172 #50185] DEBUG -- : (0.1ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 56]]
D, [2016-01-28T21:44:45.482204 #50185] DEBUG -- : (0.1ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 56]]
D, [2016-01-28T21:44:45.482744 #50185] DEBUG -- : (0.1ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 56]]
D, [2016-01-28T21:44:45.482779 #50185] DEBUG -- : (0.1ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 56]]
D, [2016-01-28T21:44:45.484161 #50185] DEBUG -- : CACHE (0.0ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 3]]
D, [2016-01-28T21:44:45.484191 #50185] DEBUG -- : CACHE (0.0ms) SELECT "rewardtypes".* FROM "rewardtypes" WHERE "rewardtypes"."id" = ? LIMIT 1 [["id", 3]]
D, [2016-01-28T21:44:45.484953 #50185] DEBUG -- : (0.1ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 57]]
D, [2016-01-28T21:44:45.484984 #50185] DEBUG -- : (0.1ms) SELECT COUNT("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 57]]
D, [2016-01-28T21:44:45.485425 #50185] DEBUG -- : (0.1ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 57]]
D, [2016-01-28T21:44:45.485451 #50185] DEBUG -- : (0.1ms) SELECT SUM("investments"."amount") FROM "investments" WHERE "investments"."reward_id" = ? [[nil, 57]]
I, [2016-01-28T21:44:45.486265 #50185] INFO -- : Rendered projects/_proj_investments.html.erb (93.5ms)
I, [2016-01-28T21:44:45.486298 #50185] INFO -- : Rendered projects/_proj_investments.html.erb (93.5ms)
I, [2016-01-28T21:44:45.486347 #50185] INFO -- : Rendered projects/show.html.erb within layouts/application (123.7ms)
I, [2016-01-28T21:44:45.486419 #50185] INFO -- : Rendered projects/show.html.erb within layouts/application (123.7ms)
I, [2016-01-28T21:44:46.135983 #50185] INFO -- : Rendered layouts/_header.html.erb (1.0ms)
I, [2016-01-28T21:44:46.136035 #50185] INFO -- : Rendered layouts/_header.html.erb (1.0ms)
I, [2016-01-28T21:44:46.136408 #50185] INFO -- : Completed 200 OK in 809ms (Views: 778.2ms | ActiveRecord: 3.3ms)
I, [2016-01-28T21:44:46.136454 #50185] INFO -- : Completed 200 OK in 809ms (Views: 778.2ms | ActiveRecord: 3.3ms)
D, [2016-01-28T21:44:58.979348 #50185] DEBUG -- :
D, [2016-01-28T21:44:58.979399 #50185] DEBUG -- :
D, [2016-01-28T21:44:58.979420 #50185] DEBUG -- :
D, [2016-01-28T21:44:58.979434 #50185] DEBUG -- :
I, [2016-01-28T21:44:58.979548 #50185] INFO -- : Started POST "/investments" for ::1 at 2016-01-28 21:44:58 -0800
I, [2016-01-28T21:44:58.979579 #50185] INFO -- : Started POST "/investments" for ::1 at 2016-01-28 21:44:58 -0800
I, [2016-01-28T21:44:58.986293 #50185] INFO -- : Processing by InvestmentsController#create as JS
I, [2016-01-28T21:44:58.986368 #50185] INFO -- : Processing by InvestmentsController#create as JS
I, [2016-01-28T21:44:58.986441 #50185] INFO -- : Parameters: {"utf8"=>"✓", "investment"=>{"amount"=>"50", "User_id"=>"2", "Reward_id"=>"50"}, "commit"=>"INVEST"}
I, [2016-01-28T21:44:58.986457 #50185] INFO -- : Parameters: {"utf8"=>"✓", "investment"=>{"amount"=>"50", "User_id"=>"2", "Reward_id"=>"50"}, "commit"=>"INVEST"}
D, [2016-01-28T21:44:58.987691 #50185] DEBUG -- : (0.1ms) begin transaction
D, [2016-01-28T21:44:58.987725 #50185] DEBUG -- : (0.1ms) begin transaction
D, [2016-01-28T21:44:58.991624 #50185] DEBUG -- : SQL (0.4ms) INSERT INTO "investments" ("User_id", "Reward_id", "amount", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?) [["User_id", 2], ["Reward_id", 50], ["amount", 50.0], ["created_at", "2016-01-29 05:44:58.990349"], ["updated_at", "2016-01-29 05:44:58.990349"]]
D, [2016-01-28T21:44:58.991667 #50185] DEBUG -- : SQL (0.4ms) INSERT INTO "investments" ("User_id", "Reward_id", "amount", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?) [["User_id", 2], ["Reward_id", 50], ["amount", 50.0], ["created_at", "2016-01-29 05:44:58.990349"], ["updated_at", "2016-01-29 05:44:58.990349"]]
D, [2016-01-28T21:44:58.992612 #50185] DEBUG -- : (0.6ms) commit transaction
D, [2016-01-28T21:44:58.992677 #50185] DEBUG -- : (0.6ms) commit transaction
I, [2016-01-28T21:44:59.002803 #50185] INFO -- : Rendered projects/_proj_investments.html.erb (3.3ms)
I, [2016-01-28T21:44:59.002882 #50185] INFO -- : Rendered projects/_proj_investments.html.erb (3.3ms)
I, [2016-01-28T21:44:59.002941 #50185] INFO -- : Rendered investments/create.js.erb (4.6ms)
I, [2016-01-28T21:44:59.002974 #50185] INFO -- : Rendered investments/create.js.erb (4.6ms)
I, [2016-01-28T21:44:59.003170 #50185] INFO -- : Completed 500 Internal Server Error in 17ms (ActiveRecord: 1.1ms)
I, [2016-01-28T21:44:59.003204 #50185] INFO -- : Completed 500 Internal Server Error in 17ms (ActiveRecord: 1.1ms)
F, [2016-01-28T21:44:59.004536 #50185] FATAL -- :
ActionView::Template::Error (undefined method `investments' for nil:NilClass):
1: <div class="panel panel-default project-rightpanel">
2: <div class="project-rightpanel-header">
3: <span class="project-rightpanel-header amount"><%=number_to_currency(@project.investments.sum(:amount),precision: 0)%></span> of <span class="project-rightpanel-header amount">$20,000</span> raised in 15 days
4: </div>
5: <div id="projectprogress"></div>
6: <div class="project-rightpanel-header">
app/views/projects/_proj_investments.html.erb:3:in `_app_views_projects__proj_investments_html_erb__2910721485294471226_70328031908000'
app/views/investments/create.js.erb:1:in `_app_views_investments_create_js_erb__4066473719869479756_70328057899160'


F, [2016-01-28T21:44:59.004591 #50185] FATAL -- :

ActionView::Template::Error(未定义方法 investments' for nil:NilClass):
1: <div class="panel panel-default project-rightpanel">
2: <div class="project-rightpanel-header">
3: <span class="project-rightpanel-header amount"><%=number_to_currency(@project.investments.sum(:amount),precision: 0)%></span> of <span class="project-rightpanel-header amount">$20,000</span> raised in 15 days
4: </div>
5: <div id="projectprogress"></div>
6: <div class="project-rightpanel-header">
app/views/projects/_proj_investments.html.erb:3:in
_app_views_projects__proj_investments_html_erb__29107214852944712​​26_70328031908000' app/views/investments/create.js.erb:1:in `_app_views_investments_create_js_erb__4066473719869479756_70328057899160'

I, [2016-01-28T21:44:59.114304 #50185]  INFO -- :   Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb (0.5ms)
I, [2016-01-28T21:44:59.114355 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb (0.5ms)
I, [2016-01-28T21:44:59.126017 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb (0.6ms)
I, [2016-01-28T21:44:59.126055 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb (0.6ms)
I, [2016-01-28T21:44:59.126101 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb (24.6ms)
I, [2016-01-28T21:44:59.126152 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb (24.6ms)
I, [2016-01-28T21:44:59.144002 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/_markup.html.erb (0.3ms)
I, [2016-01-28T21:44:59.144052 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/_markup.html.erb (0.3ms)
I, [2016-01-28T21:44:59.166877 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.3ms)
I, [2016-01-28T21:44:59.166935 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.3ms)
I, [2016-01-28T21:44:59.177608 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.2ms)
I, [2016-01-28T21:44:59.177656 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.2ms)
I, [2016-01-28T21:44:59.187782 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.3ms)
I, [2016-01-28T21:44:59.187836 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.3ms)
I, [2016-01-28T21:44:59.188232 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/console.js.erb within layouts/javascript (33.9ms)
I, [2016-01-28T21:44:59.188272 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/console.js.erb within layouts/javascript (33.9ms)
I, [2016-01-28T21:44:59.198215 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/main.js.erb within layouts/javascript (0.2ms)
I, [2016-01-28T21:44:59.198255 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/main.js.erb within layouts/javascript (0.2ms)
I, [2016-01-28T21:44:59.209355 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.4ms)
I, [2016-01-28T21:44:59.209420 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.4ms)
I, [2016-01-28T21:44:59.210343 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/index.html.erb (74.6ms)
I, [2016-01-28T21:44:59.210453 #50185] INFO -- : Rendered /Users/mikelincoln/.rvm/gems/ruby-2.2.1/gems/web-console-2.2.1/lib/web_console/templates/index.html.erb (74.6ms)

最佳答案

您的错误是<%=number_to_currency(@project.investments.sum(:amount),precision: 0) 。当您渲染 create.js.erb 的部分时没有为 ivar @project 分配任何值这就是为什么它是 nil 。您需要为其分配一个值。

错误回溯的修复看起来像:

def create
@investment = Investment.new(investment_params)

respond_to do |format|
if @investment.save
@project = @investment.reload.project
format.js {}
format.html { redirect_to @investment, notice: 'Investment was successfully created.' }
format.json { render :show, status: :created, location: @investment }
else
format.html { render :new }
format.json { render json: @investment.errors, status: :unprocessable_entity }
end
end

关于javascript - 使用 AJAX 刷新 Rails 部分时未定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35075816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com