使用用户输入

时间:2016-10-24 01:56:03

标签: ruby-on-rails ruby-on-rails-4 math

我刚开始学习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

1 个答案:

答案 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