标签: form-for

RoR之间的区别:url,:action,:form_for中的方法

文档中可能有答案,但我似乎没有找到好的答案.所以在三个:url,:action,:方法中,在Rails中的form_for中使用它们时有什么不同?

ruby-on-rails form-for ruby-on-rails-3

19
推荐指数
2
解决办法
3万
查看次数

Form_for with:multipart => true吐出

我正在尝试将头像上传字段添加到我的个人资料页面,但是一旦我添加:html => {:multipart => true}到它,它就会吐出语法错误.

<%= form_for(@user), :html => { :multipart => true } do |f| %>
<%= render 'shared/error_messages', object: f.object %>

<%= f.label :name %>
<%= f.text_field :name %>

<%= f.label :email %>
<%= f.email_field :email %>

<%= f.label :password %>
<%= f.password_field :password %>

<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>


<%= f.label :avatar %>
    <%= f.file_field :avatar %>

    <%= f.submit "Save changes", class: "btn btn-large btn-primary" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

错误是:

syntax …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails form-for

17
推荐指数
2
解决办法
3万
查看次数

16
推荐指数
1
解决办法
7509
查看次数

STI和form_for问题

我使用单表继承来管理不同类型的项目.

楷模:

class Project < ActiveRecord::Base
end

class SiteDesign < Project
end

class TechDesign < Project
end
Run Code Online (Sandbox Code Playgroud)

从projects_controller编辑动作:

def edit
   @project = Project.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)

查看edit.html.erb:

<% form_for(@project, :url => {:controller => "projects",:action => "update"}) do |f| %>
    ...
    <%= submit_tag 'Update' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

更新projects_controller的操作:

def update
    @project = Project.find(params[:id])
    respond_to do |format|
      if @project.update_attributes(params[:project])
        @project.type = params[:project][:type]
        @project.save
        flash[:notice] = 'Project was successfully updated.'
        format.html { redirect_to(@project) }
        format.xml  { head :ok }
      else
        format.html { render :action …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails form-for sti

15
推荐指数
2
解决办法
6945
查看次数

Rails:form_for命名空间资源

我想为用户设置CRUD,仅适用于我的Web应用程序的管理员.所以在routes.rb中:

namespace :admin do
  resources :user
end
Run Code Online (Sandbox Code Playgroud)

这意味着:

admin_user_index GET    /admin/user(.:format)                  admin/user#index
                 POST   /admin/user(.:format)                  admin/user#create
  new_admin_user GET    /admin/user/new(.:format)              admin/user#new
 edit_admin_user GET    /admin/user/:id/edit(.:format)         admin/user#edit
      admin_user GET    /admin/user/:id(.:format)              admin/user#show
                 PUT    /admin/user/:id(.:format)              admin/user#update
                 DELETE /admin/user/:id(.:format)              admin/user#destroy
Run Code Online (Sandbox Code Playgroud)

显示,索引工作正常,但编辑和新的不.我一直在_form第一行得到这个错误:
#<#的未定义方法`user_path':0x007fb6645c6378>

这是这样的:

如何将form_for与命名空间资源一起使用?

routes namespaces ruby-on-rails crud form-for

15
推荐指数
1
解决办法
4432
查看次数

Rails 4:fields_for中的fields_for

我正在学习RoR,我正在尝试找到如何使用has_one模型在另一个中设置fields_for:

class Child < ActiveRecord::Base
    belongs_to :father
    accepts_nested_attributes_for :father
end

class Father < ActiveRecord::Base
    has_one :child
    belongs_to :grandfather
    accepts_nested_attributes_for :grandfather
end


class Grandfather < ActiveRecord::Base
    has_one :father
end
Run Code Online (Sandbox Code Playgroud)

我在Railscasts上使用嵌套模型表单第1部分来获取这些:在children_controller.rb中:

  def new
    @child = Child.new
    father=@child.build_father
    father.build_grandfather
  end

def child_params
      params.require(:child).permit(:name, father_attributes:[:name], grandfather_attributes:[:name])
    end
Run Code Online (Sandbox Code Playgroud)

我的形式:

<%= form_for(@child) do |f| %>
  <div class="field">
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </div>
  mother:<br>
  <%= f.fields_for :father do |ff| %>
    <%= ff.label :name %>
    <%= ff.text_field :name %><br>
      grand mother:<br>
      <%= f.fields_for :grandfather …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails form-for fields-for nested-form-for ruby-on-rails-4

15
推荐指数
1
解决办法
2万
查看次数

Rails 3将资源路由问题嵌套为form_for

我在routes.rb中嵌套了这样的资源 - (我的rake:routes gist)

namespace(:admin) do 
  resources :restaurants do
    resources :menus
    resources :menu_items
  end
end
Run Code Online (Sandbox Code Playgroud)

在控制器中:

def new 
  @restaurant = Restaurant.find(params[:restaurant_id])
  @menu_item =  @restaurant.menu_items.build
end
Run Code Online (Sandbox Code Playgroud)

试图通过网址创建一个新的MenuItem(action #new):http://127.0.0.1:03001/admin/restaurant/lamen_items/new 我收到错误:

NoMethodError in Admin/menu_items#new

Showing /home/fps/workspace3/peded/app/views/admin/menu_items/_form.html.erb where line #1 raised:

undefined method `admin_menu_items_path' for #<#<Class:0xb6582d78>:0xb6581f2c>
Extracted source (around line #1):

1: <%= form_for @menu_item do |f| %>
...
Run Code Online (Sandbox Code Playgroud)

如何使这个表格有效?它是由一个漂亮的脚手架创建的

UPDATE

我也在_form中试过这个:

<%= form_for [:restaurant, @menu_item] do |f| %>
Run Code Online (Sandbox Code Playgroud)

但以类似的错误结束:

Showing /home/fps/workspace3/peded/app/views/admin/menu_items/_form.html.erb where line #1 raised:

undefined method …
Run Code Online (Sandbox Code Playgroud)

routes form-for ruby-on-rails-3

14
推荐指数
3
解决办法
1万
查看次数

Rails 4 has_one关联形式没有建立

我需要一些关于Rails 4如何与has_one和belongs_to关联一起工作的指针.

我的表格没有保存has_one关系

发布模型

class Post < ActiveRecord::Base
  validates: :body, presence: true

  has_one :category, dependent: :destroy
  accepts_nested_attributes_for :category
end

class Category < ActiveRecord::Base
  validates :title, presence: true
  belongs_to :post
end
Run Code Online (Sandbox Code Playgroud)

后控制器

class PostController < ApplicationController
  def new
    @post = Post.new
    @post.build_category
  end

  def create
    @post = Post.new(post_params)
  end

  private

  def post_params
    params.require(:post).permit(:body)
  end
end
Run Code Online (Sandbox Code Playgroud)

表格在Post#new action中

<%= form_for @post do |form| %>

  <%= form.label :body %>
  <%= form.text_area :body %>

  <%= fields_for :category do |category_fields| %>
    <%= category_fields.label …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails form-for actioncontroller strong-parameters ruby-on-rails-4

14
推荐指数
1
解决办法
1万
查看次数

如何在rails中将current_user添加到user_id到form_for?

我有一个用于创建材料的表单(标题,描述和内容 - 所有基础).表单保存这些细节很好,但它不保存user_id,user_id应该是current_user的user_id.我该怎么做呢?这一定很容易但到目前为止还没有任何工作.

def create 
   @material = Material.new(params[:material])
   if @material.save
     flash[:success] = "Content Successfully Created"
     redirect_to @material
   else
     render 'new'
   end
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails form-for

13
推荐指数
2
解决办法
6761
查看次数

如何在轨道上的ruby中向表单添加类而不设置/覆盖现有的默认助手类?

form_for通过该html: {class: "form-horizontal"}选项添加类会覆盖默认值new_modeledit_model类.如何在保留现有form_helper类的同时添加我的类?

我想要:

<form class="edit_model form-horizontal"> 要么

<form class="new_model form-horizontal">

代替:

<form class="form-horizontal">

forms ruby-on-rails form-for ruby-on-rails-3

12
推荐指数
2
解决办法
5275
查看次数