Ruby on rails Rails4-在将对象远程保存到数据库之前编辑对象的参数

Ruby on rails Rails4-在将对象远程保存到数据库之前编辑对象的参数,ruby-on-rails,json,ruby-on-rails-4,Ruby On Rails,Json,Ruby On Rails 4,有开发经验的初学者 我有一个多模型的应用程序,我已经设法解决了所有问题,但我被困在这里 我有一个模型,叫做Carentries class CartEntry < ActiveRecord::Base acts_as_paranoid belongs_to :cart belongs_to :sign 一个模型符号,在数据库中输入静态符号,无创建方法 class Sign < ActiveRecord::Base has_many :

有开发经验的初学者

我有一个多模型的应用程序,我已经设法解决了所有问题,但我被困在这里

我有一个模型,叫做Carentries

    class CartEntry < ActiveRecord::Base
    acts_as_paranoid
    belongs_to :cart
    belongs_to :sign
一个模型符号,在数据库中输入静态符号,无创建方法

    class Sign < ActiveRecord::Base
    has_many :cart_entries
    accepts_nested_attributes_for :cart_entries

按与问题相反的顺序回答:

  • 初始化新的Carentry对象可能在控制器的
    new
    操作中。Rails控制器通常同时具有
    new
    create
    new
    与呈现表单以接收输入相关,而
    create
    与“提交”按钮相关。您的
    新操作通常类似于:

    def new
      @entry = CartEntry.new(sign: @sign)
    end
    
    提示用户输入数据的视图应命名为new.html.erb,并包含表单

  • 对于从表单到create方法获取数据,我认为您已经完成了一半。如果您移动了您给出的示例:

    <% @entry = CartEntry.new(sign: @sign, count: 5)%>
    
    记住“params”只是一个包含表单输入数据的散列


  • 希望有帮助

    请添加
    entry\u params
    方法的实现
       <% @entry = CartEntry.new(sign: @sign, count: 5)%>
    
        <% @entry = CartEntry.new(sign: @sign)%>
    
        private
    
        def entry_params
          params.require(:entry).permit(:sign_id, :count)
        end
    
    def new
      @entry = CartEntry.new(sign: @sign)
    end
    
    <% @entry = CartEntry.new(sign: @sign, count: 5)%>
    
     @entry = CartEntry.new(sign: @sign, count: params[:count])
     @entry.save