Tag: model view controller

在Rails中单击按钮时传递参数

现在,我有它,以便当用户从collection_select选择一个选项时,将根据他们选择的event_id填充div。 根据Event ,将显示多个EventOption ,每个EventOption都有自己独特的ID。 (我将EventOption作为belongs_to Event ,每个Event都有很多。) 这是我在选择Event时通过JS / Ajax填充的内容: Available Options for “”: Name: Description: Price: “button”, :id => “available-dates-button” %> @event.id), :id => “book-now-button”, :class => “button” %> 我的问题是,当他们点击Book This Event Now!时,我可以传递event_id Book This Event Now! ,但那不是我需要的。 我需要特定的:id要传递的:event_option :id ,我不知道如何从迭代中获取它。 .each我都来自它。 如何确保我的book_now_path的按钮的每次迭代都有一个可用于完成预订的唯一ID?

在Rails 3.x中,如何为引用父资源的嵌套资源设计视图?

假设我有一个嵌套资源,如Rails指南示例: http : //guides.rubyonrails.org/routing.html#nested-resources resources :magazines do resources :ads end 这会将对/ magazine / newsweek / ads的调用路由到AdsController#index。 它需要URL中的magazine_id …我应该如何创建基于用于Ads#index的模板的视图,还包括父资源的上下文? 例如,拥有广告的所有父资源都会包含这些广告的表格列表。 但我希望视图的顶部包含每个杂志的样板信息。 如果/ magazines / newsweek / ads直接转到通用的AdsController#index,如何让#index视图意识到需要包含从Magazine模型生成的样板? 如果其他模型与广告有关系(TelevisionShow has_many:ads),我希望AdsController #index对这些也有不同的反应。 编辑: 这就是我过去通过MagazinesController完成这些事情的方式。 假设我想要一个单独的杂志#show action …路线将是: resources :magazines resources :ads get “magazines/:id/ads”, :controller=>”companies”, :action=>”ads” 控制器将是: class MagazinesController < ApplicationController def show … end def ads … end […]

清理视图ruby逻辑并将关注点分离到模型/控制器中

我想在我的主页上显示我的数据库中随机分类的6个工具。 我创建了一个带有主页操作的Pages控制器。 这是我的Pages控制器: class PagesController < ApplicationController def home @tools = Tool.all end end 然后在我的home.html.erb视图中,我使用.sample方法从我的数据库中抓取随机工具(我使用tool1,tool2,tool3等为每个变量重复6次): 我想知道是否有更好的方法来做到这一点。 在我看来,我似乎有逻辑,必须有办法将逻辑转移到其他地方? 我的模型,控制器等等。如何清理这些代码,以便它是好的rails代码? 或许这是很好的rails代码,我只是不知道它,因为我是一个初学者。

如何将数组分解为字符串MVC?

如果current_user提交了一个习惯,那么他:committed这样做的日子就是这样: db t.text “committed”, default: [“sun”, “mon”, “tue”, “wed”, “thu”, “fri”, “sat”], array: true 习惯/ _form (用户选择天数) habit_controller habit_params :committed => [] 习惯/指数 如果一个nil用户提交了一个习惯(鼓励他在注册前创建一个习惯),那么他:committed这样做的日子是这样的: db t.text “committed”, default: [“sun”, “mon”, “tue”, “wed”, “thu”, “fri”, “sat”], array: true 习惯/ _form (用户选择天数) * habit_controller session[:habit_committed] = [params[“habit”][“committed”]] * users_controller committed = session.delete(:habit_committed) @user.habits.create(committed: committed) 习惯/指数 当两个习惯首次提交时,终端看起来像这样: Started […]

将参数传递给link_to方法

如何使用link_to方法通过MVC传递参数? 视图: 如何使用link_to方法来利用remove_tag操作? issues_controller.rb def remove_tag(parameter) @issue.remove_it(parameter) end issue.rb def remove_it(parameter) self.users.delete(User.find(parameter)) end

在Valuations#new中的ActionController :: UrlGenerationError

我读过与UrlGenerationError有关的其他SO文章, UrlGenerationError文章似乎指向一个单词的单一化或多元化,但我认为这不是问题所在。 当我从valuations / _form.html.erb中删除时,它可以正常工作: 使用:name & :tag_list提交:tag_list ,readd 然后刷新。 什么是零交易? 路线 resources :valuations do resources :comments end comments_controller class CommentsController < ApplicationController before_action :load_commentable before_action :set_comment, only: [:show, :edit, :update, :destroy] before_action :logged_in_user, only: [:create, :destroy] def index @comments = @commentable.comments end def new @comment = @commentable.comments.new end def create @comment = @commentable.comments.new(comment_params) if […]

Rails:“新”行动如何称为“创造”行动?

我正在按照本教程http://guides.rubyonrails.org/v3.2.13/getting_started.html在3.2.13版本中构建我的rails应用程序。 如果您转到6.9部分,您将找到用于创建新post的控制器和视图。 在这里,我不知道@post变量是如何new动作传递到create动作的,以及create函数调用的位置在哪里? 此外,我在处理edit和更新actions时遇到了同样的问题。 请指导我完成这个。

我应该使用类方法还是实例方法,为什么?

在我的Rails应用程序中,创建业务时我有一个包含以下字段的表单: 基本上当我创建一个企业时,如果他们选中此框,我需要它来运行类似下面的代码: def set_default_company(company, user) exists = DefaultCompany.find(user.id) if exists exists.update_attributes(company: company) else DefaultCompany.create(company: company, user: user) end end 在学习的过程中,我通常会在我的控制器中执行这些操作,但我正在尝试遵循最佳实践并使用胖模型,瘦的控制器,所以我想要使用这样的逻辑: def create @company = Company.new(params[:company]) if @company.save if params[:default_company] Company.set_default_company(@company.id, current_user.id,) end flash[:notice] = “Company was successfully created.” redirect_to @company else redirect_to new_company_path end end 这是我对是否使用类方法或实例方法,调用set_default_company感到困惑的地方。 他们似乎都会工作,我看不到其中任何一方的好处。 除了给我任何关于使用哪种方法的信息之外,如果有人可以向我展示一个简短的写作实现,作为一个类方法与实例方法,它可以让我更好地理解为什么。 这是我写它们的方式: def self.set_default_company(company, user) # Logic here […]

如何使用私人提交来隐藏个人资料?

当用户通过private提交时,我们如何隐藏来自Feed的提交信息以及能够在其公开个人资料中看到它的其他用户? … … 我们将下面的内容放在控制器中,但由于私有按钮将包含许多不同的_forms,我是否必须将它放在每个控制器中,还是可以将它放在应用程序控制器中? if params[:private] # the private action / What do we need to put here? else # normal submit / and here? 我跟着这个铁路播放节目几乎到了T来构建活动源: http ://railscasts.com/episodes/406-public-activity。 以下是公开个人资料的代码: users_controller.rb def show @user = User.find(params[:id]) @habits = @user.habits @valuations = @user.valuations @accomplished_goals = @user.goals.accomplished @unaccomplished_goals = @user.goals.unaccomplished @averaged_quantifieds = @user.quantifieds.averaged @instance_quantifieds = @user.quantifieds.instance end show.html.erb […]

Ruby on Rails最佳实践 – 大型控制器与小型控制器

我需要一些关于Ruby on Rails 最佳实践的信息,特别是对于必须做很多事情的Controller ,因此,一个简单的“show”动作现在就行了。 我知道,它不是很好,我有特定的代码。 这是一个示例代码: def show sound = Sound.find(params[:id]) @xml_path = File.dirname(sound.file.path) s3 = AWS::S3.new( :access_key_id => ‘XXX’, :secret_access_key => ‘XXX’) @url = s3.buckets[‘dev’].objects[sound.file.path[1..-1]].url_for(:read, :expires => 10*60) if sound.id_job != 0 && sound.transcript_progress != 100 @response = Savon.client(“http://srap.php?wsdl”).request(:avance) do soap.body = { :Jeton => “abcdef”, :ID_job => sound.id_job, } end @response = […]