【发布时间】:2014-05-21 19:23:06
【问题描述】:
这里有一些开发经验的初学者。
我有一个包含多个模型的应用程序,我已经设法解决了所有问题,但我被困在这里。
我有一个模型,叫做 CartEntries
class CartEntry < ActiveRecord::Base
acts_as_paranoid
belongs_to :cart
belongs_to :sign
在 Cart Entry 控制器中使用 create 方法
def create
@entry = @cart.entries.create(entry_params)
if @entry.save
flash[:notice] = translate 'flash.notice'
else
flash[:error] = translate 'flash.error'
end
support_ajax_flashes!
respond_to do |format|
format.html # renders view
format.json { render json: @entry }
end
end
还有一个带有静态标志的模型标志输入到数据库中,没有创建方法。
class Sign < ActiveRecord::Base
has_many :cart_entries
accepts_nested_attributes_for :cart_entries
从 Sign 的角度来看,我初始化了一个 CartEntry 的新实例,并在单击链接后成功创建了一个新的 Cart Entry,生成了通知。
<% @entry = CartEntry.new(sign: @sign)%>
<%= link_to t('.add_to_cart'), user_cart_entries_path(:entry => @entry.attributes),method: :post, remote: true, "data-type" => :json%>
购物车条目有另一个名为 Count 的字段,默认值为 1。我正在寻找一种方法让用户在文本字段中输入此数字并在创建购物车条目时,传递用户输入的 Count 而不是默认的 1。 我尝试过的都通过了默认值。 而
<% @entry = CartEntry.new(sign: @sign, count: 5)%>
这个技巧正确,并将 5 作为值传递,但我希望用户输入这个数字,因为它显然是一个变量。
虽然我理解
<% @entry = CartEntry.new(sign: @sign)%>
在页面加载时初始化入口对象,我必须移动它,我问你好心人,在哪里?
更新
输入参数:
private
def entry_params
params.require(:entry).permit(:sign_id, :count)
end
【问题讨论】:
-
请添加
entry_params方法的实现
标签: ruby-on-rails json ruby-on-rails-4