我是一个前端+ PHP开发人员,试图修复在Rails中构建的项目中的[]。
[] =获取颜色,显示稍暗的颜色。
这一行:
<%= f.text_field attribute %>
创建一个输入字段,其值可以转换为颜色。我不知道在哪里寻找它如何增加这个价值。我正在尝试使用此输入字段生成的值。
这是来自app / views / shared文件夹中的文件select_a_color_input.html.erb的代码。关于在哪里继续寻宝的任何想法? :)
更新:我发现了这个!
def app_text_field(attribute, args = {})
render_field 'text_field', field_locals(attribute, args)
end
这有帮助吗? ^ __ ^
更新: 表单构建器
class AppFormBuilder < ActionView::Helpers::FormBuilder
def form_fields(partial = nil , options = {})
partial ||= 'form'
fields = ''
unless options.delete(:without_error_messages)
fields << @template.render('shared/error_messages', :target => Array(@object).last)
end
fields << @template.render(partial, options.merge(:f => self))
end
def app_text_field(attribute, args = {})
render_field 'text_field', field_locals(attribute, args)
end
def app_file_field(attribute, args = {})
render_field 'file_field', field_locals(attribute, args)
end
private
def render_field(name, locals)
@template.render field_path(name), locals
end
def field_locals(attribute, args = {})
help_options = args[:help_options] || {}
field_options = args[:field_options] || {}
html_options = args[:html_options] || {}
{ :f => self, :attribute => attribute, :help_options => help_options, :field_options => field_options, :html_options => html_options, :object => object }
end
def field_path(value)
"shared/app_form/#{value}"
end
end
更新: 当我试图添加
时<%= content_tag(:p, attribute) %>
它不会给我值,而是给出项目的ID /名称,而不是颜色。
答案 0 :(得分:1)
<%= f.text_field attribute %>
这本身对帮助我们收集上下文不是很有用。周围的标记是什么样的?在这种情况下,attribute
是一个ruby变量。如果是f.text_field :attribute
,则:attribute
现在是符号而不是变量,这表示它映射到X模型上的attribute
方法。这完全取决于您form_for
的样子。我举个例子:
<%= form_for @user do |f| %>
<%= f.text_field :attribute %>
在这种情况下,我们有一个User
模型的表单,我们的text_field映射到@user.attribute
。该字段本身看起来像这样:
<input type='text' name='user[attribute]'>
在控制器的#update
或#create
操作中(取决于这是您正在编辑的新记录还是现有记录),可以通过以下方式访问该值:
params[:user][:attribute]
然而,在你的特定情况下,无法确定params的确切含义。正在采取什么行动?这个文件的名称是什么? “app / views / users / new”表示#new
操作处理此页面,#create
操作将处理表单提交。
我们需要知道的事情才能完全解决您的问题:
处理此操作的控制器的名称和相关代码。
从
标记的其余部分从form_for
开始并以此字段属性结尾
attribute
有什么价值?它是一个变量,因此它必须保持一个符号值或一些指示哪个字段被映射到此输入的东西。