我刚开始学习Rails所以请原谅这个愚蠢的问题。在我的网络应用程序中,我能够设置工作模型,表单和视图。用户能够输入他们的小数答案,并在网页上完美显示。但是,我想从另一个用户输入中减去一个用户输入。因此,如果用户在一个模型“post.price”中输入100,在另一个输入模型中输入10“ratings1.content”>我希望它在“fprice.content3”中显示90。你们给我的任何帮助都会非常惊人,我觉得这个问题可能出现在我的fprice控制器中。我在下面列出了所有相关代码。再次感谢你:)
_form.html“post.price”
<%= simple_form_for @post do |f| %>
<%= f.input :title %>
<%= f.input :image %>
<%= f.input :price %>
<%= f.button :submit %>
<% end %>
_form.html“ratings1.s.tent”
<%= simple_form_for ([@post, @post.ratings1s.build]) do |f| %>
<%= f.input_field :content %>
<% end %>
_form.html“fprice.content3”
<%= simple_form_for ([@post, @post.fprices.build]) do |f| %>
<%= f.input_field :content3 %>
<% end %>
Rails Controller“fprices”
class FpricesController < ApplicationController
before_action :authenticate_user!
def create
@post = Post.find(params[:post_id])
@fprice = Fprice.create(params[:fprice].permit(:content3))
@fprice.content3 === @post.price - @ratings1.content
@fprice.user_id = current_user.id
@fprice.post_id = @post.id
if @fprice.save
redirect_to post_path(@post)
else
render 'new'
end
end
end
Rails控制器“ratings1s”
class Ratings1sController < ApplicationController
before_action :authenticate_user!
def create
@post = Post.find(params[:post_id])
@ratings1 = Ratings1.create(params[:ratings1].permit(:content))
@ratings1.content *= 10
@ratings1.user_id = current_user.id
@ratings1.post_id = @post.id
if @ratings1.save
redirect_to post_path(@post)
else
render 'new'
end
end
end
答案 0 :(得分:0)
似乎在任何时候你都没有定义@ratings1
个对象,那么你在content
上调用@ratings1
方法,而class FpricesController < ApplicationController
before_action :authenticate_user!
def create
@post = Post.find(params[:post_id])
@fprice = Fprice.create(params[:fprice].permit(:content3))
@ratings1 = @post.ratings1s.last
@fprice.content3 = @post.price - @ratings1.content
@fprice.user_id = current_user.id
@fprice.post_id = @post.id
if @fprice.save
redirect_to post_path(@post)
else
render 'new'
end
end
end
的值为零,这就是导致错误。也许这样的事情应该会有所帮助:
@fprice.content3 === @post.price - @ratings1.content
我认为这一行也是一个问题
===
@fprice.content3 = @post.price - @ratings1.content
是一个平等运算符,所以我不知道为什么你会用它替换它
GROUP BY