我很难解释我想要的东西,但我仍会尽我所能。
我在Rails中创建了一个表单,用户可以填写某些字段。现在填充完这些字段后,我知道我可以在Router中使用资源,并在Controller中定义一个将数据保存到数据库的create方法。 但是我想要的是将表单中保存的数据传递给我的控制器。然后在控制器中创建一个自定义方法,就像传统的Create方法一样,但是我不想使用Resource方法传递参数,而是将它们作为参数传递。甚至可以在Rails中使用:
这是我目前创建表单的视图:
<h1> Please add a new product</h1>
<%= form_for @product do |p| %>
<p>
<%= p.label 'Product Name' %><br/>
<%= p.text_field :product_name %><br/>
</p>
<p>
<%= p.label 'Description' %><br/>
<%= p.text_area :description %><br/>
</p>
<p>
<%= p.label 'Price' %><br/>
<%= p.text_field :price %><br/>
</p>
<p>
<%= p.label 'Rating' %><br/>
<%= p.text_field :rating %><br/>
</p>
<% end %>
所以我可能在Ruby中使用In Built表单,但我只想将参数从View传递给Controller的方法。
感谢您的帮助!!!
答案 0 :(得分:0)
我会帮你解决问题。 请按照以下步骤操作:
在routes.rb中创建您的路线:
get "/create_product" => 'products#create_product', as: :create_product
或者如果你想通过post方法传递params:
post "/create_product" => 'products#create_product', as: :create_product
现在根据新的路线助手更改您的视图文件:
form_for (@products, url:{:controller=>'products', :action=>'create_product'}, html:{method:'post'})
现在最后一步修改你的控制器:
def create_product
#your form values are avaible here in params variable
pp params
puts params[:Price]
#save your params into ur db
end
注意:我假设您已经有product.rb模型