【问题标题】:form_for syntax problemform_for 语法问题
【发布时间】:2011-04-27 19:07:52
【问题描述】:

我需要生成类似的东西

{ :multipart => true } 做 |f| %>

在我的 rails 模板中,但不允许使用这种语法。这种情况的正确语法是什么。谢谢!

【问题讨论】:

  • @name 是什么?是用户的属性吗?
  • 不确定您要在这里做什么。也许更多信息会有所帮助。是否有您要生成的特定 URL?这个视图用在什么控制器上? @user 和 @name 都是对象吗? @user 是否有可能有很多 @names? - 这就是 rails 将尝试通过该语法猜测的内容。
  • 我想做“嵌套控制器”,用户嵌套在名称中。我知道, { :multipart => true } 做 |f| %> 有效并且 有效,但我需要结合它...
  • 并显示该表单的控制器操作

标签: ruby-on-rails


【解决方案1】:

你的语法没问题。你刚刚忘记了相等的= 符号:

<%= form_for [@user, @name], :html => { :multipart => true } do |f| %>

你还需要管理你的路线

resources :users do
  resources :names
end

您需要在控制器操作中指定@user@name

def new
  @user = User.new
  @name = @user.names.new
end

【讨论】:

    【解决方案2】:

    假设@name 是@user 的属性,那么下面的代码将起作用。

    <% form_for @user, :html => { :multipart => true } do |f| %>
    <%= f.text_field :name %>
    <% end %>
    

    查看更多关于form_for

    【讨论】:

    • 抱歉混淆,在我的例子中,名称嵌套在 used 中。我知道 { :multipart => true } 做 |f| %> 有效, 有效,但我需要结合它...
    • 那么 form_for [@user,@name] 出现什么问题或错误?这是一个 has_many 关联吗?
    • 我得到 NilClass:Class 的未定义方法 `model_name'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多