【问题标题】:ruby on rails - nested formsruby on rails - 嵌套形式
【发布时间】:2011-06-02 15:39:10
【问题描述】:

我有一个设置模型属性的表单,但是,我想通过代码设置一个属性。也就是说,我希望用户设置一些属性,但我希望程序设置其他属性。

有什么办法吗?

例子:

如果我有一个包含“文本”列和“用户”列的表格,我希望用户输入文本,但我希望程序设置“用户”列。我将如何做到这一点?

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller forms models


    【解决方案1】:

    如果你想确保只有 text 属性可以被用户更新,你可能想使用 attr_accessible 如下

    类 MyModel

    这将确保只有 MyModel 的文本属性可以通过批量赋值进行更新。

    【讨论】:

      【解决方案2】:

      当然。你可以这样做:

       def create
         @something = Something.new(params[:something])
         @something.programmatically_set_attribute = "Some value"  #Here's the part that matters
      
         respond_to do |format|
           if @host.save
             format.html { redirect_to(@something, :notice => 'Something was successfully created.') }
             format.xml  { render :xml => @something, :status => :created, :location => @something}
           else
             format.html { render :action => "new" }
             format.xml  { render :xml => @something.errors, :status => :unprocessable_entity }
           end
         end
      end
      

      在您的表单中,您只需省略不希望人工编辑的字段。您还必须更改更新功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-28
        • 2018-12-28
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 2011-01-11
        相关资源
        最近更新 更多